Linux
為什麼 SSHFS 不讓我查看已掛載的目錄?
我使用 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 身份登錄時,我沒有任何問題。我可以 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
我究竟做錯了什麼?權限對我來說似乎是正確的。我錯了嗎?
我自己找到了答案。問題是我沒有使用選項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 機器上沒有其他使用者的讀取權限。所以我也改變了它,現在我可以使用任何使用者訪問該目錄。