我使用 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 身份登录时,没有任何问题。我可以 cd 进入 /home/xxx/path_to/content。
但是当我以另一个用户 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
我做错了什么?权限对我来说似乎是正确的。我错了吗?
答案1
我自己找到了答案。问题是我没有使用选项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 机器上没有其他用户的读取权限。所以我也改变了这一点,现在我可以用任何用户访问该目录。