Dlaczego SSHFS nie pozwala mi zajrzeć do zamontowanego katalogu?

34

Używam SSHFS do montowania katalogu na zdalnym serwerze. Na kliencie i serwerze jest użytkownik xxx. UID i GID są identyczne na obu polach.

używam

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

aby zamontować katalog na zdalnym serwerze. Kiedy loguję się na kliencie jako xxx, nie mam problemów. Mogę cd do / home / xxx / path_to / content.

Ale kiedy loguję się na kliencie jako inny użytkownik Zzz, a potem

$ ls -l /home/xxx/path_to

rozumiem

d?????????   ? ?    ?        ?                ? content

i dalej

$ ls -l /home/xxx/path_to/content

dostaję

ls: cannot access content: Permission denied

Kiedy robię

$ ls -l /mnt

na zdalnym serwerze dostaję

drwxr-xr-x 6 xxx xxx  4096 2011-07-25 12:51 content

Co ja robię źle? Uprawnienia wydają mi się poprawne. Czy się mylę?

Jan Deinhard
źródło
Zaloguj się jako użytkownik xxx i podaj dane wyjściowe ls -ld /home/xxx/path_to/content?
kwanty

Odpowiedzi:

42

Sam znalazłem odpowiedź. Problem polegał na tym, że nie użyłem opcji 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

Aby skorzystać z tej opcji, musisz ustawić opcję user_allow_other w /etc/fuse.conf. Kiedy to zrobiłem, miałem inny problem. Plik /etc/fuse.conf nie miał uprawnień do odczytu dla innych użytkowników w moim polu Ubuntu. Więc też to zmieniłem i teraz mogę uzyskać dostęp do katalogu z dowolnym użytkownikiem.

Jan Deinhard
źródło
5
Plik /etc/fuse.conf nie powinien mieć opcji odczytu dla wszystkich. Chodzi o to, aby dodać się do grupy bezpieczników, aby móc ją przeczytać za pomocą uprawnień grupy.
Jherico
1
Potwierdzenie, że potrzeba włączenia user_allow_other w etc / fuse.conf na kliencie była wymagana, aby mój użytkownik miał dostęp do folderów poza moim katalogiem domowym na serwerze podczas uzyskiwania dostępu do serwera z identycznego identyfikatora UID i GID. Bycie w grupie bezpieczników na kliencie wystarczyło mi, aby przeczytać /etc/fuse.conf na Ubuntu, ponieważ znalazłem, że plik został ustawiony rw_r______ root: fuse
1
Jeśli zamierzasz użyć opcji mount_other mount, jak sugeruje powyższa odpowiedź, pamiętaj, że jądro Linuksa ma nierozwiązany błąd bezpieczeństwa, który wpływa na FUSE. Zobacz github.com/libfuse/libfuse/issues/15
MountainX