SSHFSでマウントされたディレクトリを検索できないのはなぜですか?


34

SSHFSを使用して、リモートサーバーにディレクトリをマウントします。クライアントとサーバーにユーザーxxxがいます。UIDとGIDは両方のボックスで同一です。

私が使う

sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \ 
      -o cache_timeout=600 -o ServerAliveInterval=15 \
      xxx@yyy.yyy.yyy.yyy:/mnt/content /home/xxx/path_to/content

ディレクトリをリモートサーバーにマウントします。クライアントにxxxとしてログインすると、問題はありません。/ home / xxx / path_to / contentにcdできます。

しかし、別のユーザーzzzとしてクライアントにログインしてから、

$ ls -l /home/xxx/path_to

こうなる

d?????????   ? ?    ?        ?                ? content

そして

$ ls -l /home/xxx/path_to/content

私は得る

ls: cannot access content: Permission denied

私がする時

$ ls -l /mnt

私が得るリモートサーバー上で

drwxr-xr-x 6 xxx xxx  4096 2011-07-25 12:51 content

何が間違っていますか?許可は私には正しいようです。私が間違っている?


xxxユーザーとしてログインし、ls -ld /home/xxx/path_to/content?の出力を提供します。
量子

回答:


42

自分で答えを見つけました。問題は、allow_otherオプションを使用しなかったことです。

sshfs -o allow_other -o kernel_cache -o auto_cache -o reconnect \
  -o compression=no -o cache_timeout=600 -o ServerAliveInterval=15 \
  xxx@yyy.yyy.yyy.yyy:/mnt/content /home/xxx/path_to/content

このオプションを使用するには、/ etc / fuse.confでuser_allow_otherオプションを設定する必要があります。これをやったとき、別の問題がありました。ファイル/etc/fuse.confには、Ubuntuボックスの他のユーザーの読み取り権限がありません。それで私もそれを変更し、今ではどのユーザーでもディレクトリにアクセスできます。


5
/etc/fuse.confファイルには、すべての人のための読み取りオプションがあるわけではありません。その目的は、グループの権利を介して読み取ることができるように、自分をヒューズグループに追加することです。
ジェリコ

1
同一のUIDとGIDからサーバーにアクセスするときに、ユーザーがサーバー上のホームディレクトリ外のフォルダーにアクセスするには、クライアントでetc / fuse.confのuser_allow_otherを有効にする必要があることを確認します。ファイルがrw_r______ root:fuse

1
上記の回答が示すようにallow_otherマウントオプションを使用する場合は、LinuxカーネルにFUSEに影響する未解決のセキュリティバグがあることに注意してください。参照してくださいgithub.com/libfuse/libfuse/issues/15
MountainX
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.