Armadilloフォーラム

マウントしたSDカードへのFTPのPUTについて

tani1023

2015年7月27日 10時39分

お世話になります。谷と申します。

SDカードのマウントをFTP対象にし、SDカードに直接PUTしたいと考えております。
過去の履歴を探り、マウント時に権限を渡しましたが、権限がうまく変わりません。
(写真添付参照)
ftpをユーザーftp、パスワード空で入っても、getはできても、putできない状態です。

mount -t vfat -o uid=500,gid=500 /dev/mmcblk0p1 /home/ftp/pub

fatの権限をうまく確認、変更するやり方をご教授できた幸いです。
ご確認宜しくお願いいたします。

※過去URL
http://lists.atmark-techno.com/pipermail/armadillo/2013-May/008845.html

ファイル ファイルの説明
sdカード.jpg
コメント

谷です。返信ありがとうごいます。

下記の件、取り急ぎ、mkdir /home/ftp/pub/mnt
と、pub配下にフォルダを作成し、同じようにumask=0でマウントしてみましたが、権限は変わりませんでした・・。※写真添付
(SDカードだけ別??)なお、関係あるかはありませんが、dev/mmcblk0p1は、/home/ftp/pub/mnt 以外にも起動時にmount -t vfat /dev/mmcblk0p1 /mnt にて、mntにもマウントしており、2重にマウントしている状態です。

以上、ご確認宜しくお願いいたします。

> 佐々木です。
>
> 先日、SDカードではなくUSBメモリですが、同じことを試した際のメモを、ブログに残しています。
> umaskの設定で対応できるかと思いますので、お試ししていただければ。
>
> https://users.atmark-techno.com/blog/750/1316
>
> 以上です。

ファイル ファイルの説明
SDカードマウント.jpg

谷です。やはり起動時にマウントしたままの状態でのさらにマウントでおかしくなっている模様です・・。
できれば2重にマウントしたいのですが。起動時のマウントを試させていただき、再度報告いたします。

> 谷です。返信ありがとうごいます。
>
> 下記の件、取り急ぎ、mkdir /home/ftp/pub/mnt
> と、pub配下にフォルダを作成し、同じようにumask=0でマウントしてみましたが、権限は変わりませんでした・・。※写真添付
> (SDカードだけ別??)なお、関係あるかはありませんが、dev/mmcblk0p1は、/home/ftp/pub/mnt 以外にも起動時にmount -t vfat /dev/mmcblk0p1 /mnt にて、mntにもマウントしており、2重にマウントしている状態です。
>
> 以上、ご確認宜しくお願いいたします。
>
>
>
>
>
> > 佐々木です。
> >
> > 先日、SDカードではなくUSBメモリですが、同じことを試した際のメモを、ブログに残しています。
> > umaskの設定で対応できるかと思いますので、お試ししていただければ。
> >
> > https://users.atmark-techno.com/blog/750/1316
> >
> > 以上です。

以前類似質問(https://armadillo.atmark-techno.com/forum/armadillo/1397)に回答したizawaです。

/mntへのマウントは諦めて、ln -s /home/ftp/pub/mnt /mntでしのげませんか?
こんな感じの処理をrc.localにでも放り込めばなんとかなりそうですが。
--
# マウント
mkdir /home/ftp/pub/mnt; mount $Media /home/ftp/pub/mnt

# リンク張り替え
rmdir /mnt; cd /; ln -s /home/ftp/mnt /mnt
--
# 権限は適宜調整してください。

ご返答ありがとうございます。谷です。
表記の件、

mount -t vfat -o umask=000 /dev/mmcblk0p1 /home/ftp/pub/mnt
mount -t vfat /dev/mmcblk0p1 /mnt

の順序でマウントすることにより、/mnt配下、及び /home/ftp/pub/mnt両方確認できることができました。
/home/ftp/pub/mntへのFTPのPUTも問題ないようです。
とりいそぎ、解決とさせていただきます。
ありがとうございました。

> 以前類似質問(https://armadillo.atmark-techno.com/forum/armadillo/1397)に回答したizawaです。
>
> /mntへのマウントは諦めて、ln -s /home/ftp/pub/mnt /mntでしのげませんか?
> こんな感じの処理をrc.localにでも放り込めばなんとかなりそうですが。
> --
> # マウント
> mkdir /home/ftp/pub/mnt; mount $Media /home/ftp/pub/mnt
>
> # リンク張り替え
> rmdir /mnt; cd /; ln -s /home/ftp/mnt /mnt
> --
> # 権限は適宜調整してください。

中村です。

元投稿で私のML時代のものが引用されてたので、経過を見てました。
すでに解決されているようですが・・・

最初の投稿にあった
> mount -t vfat -o uid=500,gid=500 /dev/mmcblk0p1 /home/ftp/pub

このuidとgid、ftpユーザならば501ですね。

> mount -t vfat -o umask=000 /dev/mmcblk0p1 /home/ftp/pub/mnt
> mount -t vfat /dev/mmcblk0p1 /mnt
>
> の順序でマウントすることにより、/mnt配下、及び /home/ftp/pub/mnt両方確認できることができました。

多重にマウントした場合、順番が関係するんですね。知りませんでした。
自分でも次のようにuid=501,gid=501で試してみました。

# mkdir /home/ftp/pub/mnt
 
# mount -t vfat /dev/sda1 /mnt
# ls -l / | grep mnt
drwxr-xr-x   14 root     root         8192 Jan  1 09:00 mnt/        ←/mntのオーナーはroot
 
# mount -t vfat -o uid=501,gid=501 /dev/sda1 /home/ftp/pub/mnt/
# ls -l / | grep mnt
drwxr-xr-x   14 root     root         8192 Jan  1 09:00 mnt/        ←/mntのオーナーはroot
# ls -l /home/ftp/pub | grep mnt
drwxr-xr-x   14 root     root         8192 Jan  1 09:00 mnt/        ←/home/ftp/pub/mntのオーナーはroot
 
# umount /home/ftp/pub/mnt
# umount /mnt
 
# mount -t vfat -o uid=501,gid=501 /dev/sda1 /home/ftp/pub/mnt/
# ls -l /home/ftp/pub | grep mnt
drwxr-xr-x   14 ftp      ftp          8192 Jan  1 09:00 mnt/        ←/home/ftp/pub/mntのオーナーはftp
 
# mount -t vfat /dev/sda1 /mnt
# ls -l / | grep mnt
drwxr-xr-x   14 ftp      ftp          8192 Jan  1 09:00 mnt/        ←/mntのオーナーはftp

--
なかむら

> mount -t vfat -o umask=000 /dev/mmcblk0p1 /home/ftp/pub/mnt
> mount -t vfat /dev/mmcblk0p1 /mnt
>
> の順序でマウントすることにより、/mnt配下、及び /home/ftp/pub/mnt両方確認できることができました。

え?これ、ファイルシステムを壊しませんか?
または、違うものが読めるとか。

もし、複数の場所に見せたいときは、 mount --bind が使えるとおもいます。

> もし、複数の場所に見せたいときは、 mount --bind が使えるとおもいます。
armadillo-440のmount だとコマンドラインオプションが無いので、
mount -o bind のようにして、オプションを渡してください。

例:

[root@armadillo440-0 (ttymxc1) ~]# mkdir hoge
[root@armadillo440-0 (ttymxc1) ~]# mount -o bind /home/ftp/ hoge
[root@armadillo440-0 (ttymxc1) ~]# ls hoge
bin/ etc/ lib/ pub/

> え?これ、ファイルシステムを壊しませんか?

え?ダメですか?

mount(2)から引用

       Linux  2.4 以降、ひとつのファイルシステムを複数のマウントポイントに結び
       つけることができ、同じマウントポイントに複数のマウントをスタックさせ る
       こともできる。
原文
       Since  Linux  2.4 a single file system can be visible at multiple mount
       points, and multiple mounts can be stacked on the same mount point.

> もし、複数の場所に見せたいときは、 mount --bind が使えるとおもいます。

bindオプションは、ディレクトリのハードリンクみたいなものですよね。
mount(2)に書いてある「2.4以降~」とは別の機構。

まぁ、bindオプションを使った方が安心かもしれませんが。

--
なかむら

>        Linux  2.4 以降、ひとつのファイルシステムを複数のマウントポイントに結び
>        つけることができ、同じマウントポイントに複数のマウントをスタックさせる
>        こともできる。
> 原文
>        Since  Linux  2.4 a single file system can be visible at multiple mount
>        points, and multiple mounts can be stacked on the same mount point.

知りませんでした!。大丈夫なんですね。
ありがとうございます。

The Linux Programming Interface にも実例付きで書いてありました。
https://goo.gl/thuN35

mount(2)の後半のスタックの説明がピンときませんでしたが、
これ(↓)、ありがごうございます。
> The Linux Programming Interface にも実例付きで書いてありました。
> https://goo.gl/thuN35

スタックの具体例も、ここに。

たとえばArmadilloで、すでにマウント済みの/mntに
別のファイルシステムをマウントしてしまって、
「おっと、間違えた」というようなときのことですね。

--
なかむら