Я использую 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
Чтобы использовать эту опцию, вы должны установить опцию user_allow_other в /etc/fuse.conf. Когда я это сделал, у меня возникла другая проблема. Файл /etc/fuse.conf не имел прав на чтение для других пользователей в моем Ubuntu. Я тоже изменил это, и теперь я могу получить доступ к каталогу с любым пользователем.