Почему SSHFS не позволяет мне заглянуть в смонтированный каталог?

34

Я использую SSHFS для монтирования каталога на удаленном сервере. На клиенте и сервере есть пользователь ххх. 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 на клиент, у меня нет проблем. Я могу перейти в / 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

Что я делаю не так? Разрешения кажутся мне правильными. Я ошибся?

Ян Дейнхард
источник
Войдите как пользователь ххх и дайте нам вывод ls -ld /home/xxx/path_to/content?
кванты

Ответы:

42

Я нашел ответ сам. Проблема была в том, что я не использовал опцию 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. Так что я тоже это изменил, и теперь я могу получить доступ к каталогу с любым пользователем.

Ян Дейнхард
источник
5
Файл /etc/fuse.conf не должен иметь параметры чтения для всех. Намерение состоит в том, чтобы вы добавили себя в группу предохранителей, чтобы вы могли читать ее через права группы.
Джерико,
1
Подтверждение того, что пользователю нужно было включить user_allow_other в etc / fuse.conf на клиенте для доступа к папкам вне моего домашнего каталога на сервере при доступе к серверу с идентичным UID и GID. Находясь в группе fuse на клиенте, мне было достаточно прочитать /etc/fuse.conf в Ubuntu, так как я обнаружил, что файл был установлен rw_r______ root: fuse
1
Если вы намереваетесь использовать опцию allow_other mount, как показано в ответе выше, помните, что в ядре Linux есть неразрешенная ошибка безопасности, которая влияет на FUSE. См. Github.com/libfuse/libfuse/issues/15
MountainX