SSHFSを使用して、リモートサーバー上のディレクトリをマウントします。クライアントとサーバーにユーザーxxxがあります。 UIDとGIDは両方のボックスで同一です。
私が使う
sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \
-o cache_timeout=600 -o ServerAliveInterval=15 \
[email protected]:/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
何が悪いのですか?権限は私には正しいようです。私が間違っている?
自分で答えを見つけました。問題は、オプションallow_otherを使用しなかったことです。
sshfs -o allow_other -o kernel_cache -o auto_cache -o reconnect \
-o compression=no -o cache_timeout=600 -o ServerAliveInterval=15 \
[email protected]:/mnt/content /home/xxx/path_to/content
このオプションを使用するには、/ etc/Fuse.confでオプションuser_allow_otherを設定する必要があります。私がこれをしたとき、私は別の問題を抱えていました。ファイル/etc/Fuse.confには、Ubuntuボックスで他のユーザーの読み取り権限がありませんでした。だから私もそれを変更し、今ではどのユーザーでもディレクトリにアクセスできます。