为什么 SSHFS 不允许我查看已挂载的目录?

为什么 SSHFS 不允许我查看已挂载的目录?

我使用 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 机器上没有其他用户的读取权限。所以我也改变了这一点,现在我可以用任何用户访问该目录。

相关内容