Perché SSHFS non mi permette di guardare in una directory montata?


34

Uso SSHFS per montare una directory su un server remoto. Esiste un utente xxx su client e server. UID e GID sono identici su entrambe le caselle.

Io uso

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

per montare la directory sul server remoto. Quando accedo come xxx sul client non ho problemi. Posso eseguire il cd in / home / xxx / path_to / content.

Ma quando accedo al client come un altro utente zzz e quindi

$ ls -l /home/xxx/path_to

Capisco questo

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

e via

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

ottengo

ls: cannot access content: Permission denied

Quando io faccio

$ ls -l /mnt

sul server remoto ottengo

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

Che cosa sto facendo di sbagliato? Le autorizzazioni sembrano essere corrette per me. Ho sbagliato?


Accedi come utente xxx e dacci l'output di ls -ld /home/xxx/path_to/content?
quanta,

Risposte:


42

Ho trovato la risposta da solo. Il problema era che non avevo usato l'opzione 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

Per usare questa opzione devi impostare l'opzione user_allow_other in /etc/fuse.conf. Quando l'ho fatto ho avuto un altro problema. Il file /etc/fuse.conf non ha avuto permessi di lettura per altri utenti sulla mia casella Ubuntu. Quindi ho cambiato anche quello e ora posso accedere alla directory con qualsiasi utente.


5
Il file /etc/fuse.conf non dovrebbe avere opzioni di lettura per tutti. L'intento è di aggiungerti al gruppo dei fusibili in modo da poterlo leggere tramite i diritti di gruppo.
Jherico,

1
Conferma che la necessità di abilitare user_allow_other in etc / fuse.conf sul client era richiesta per il mio utente di accedere alle cartelle esterne alla mia home directory sul server quando accedeva al server da un UID e GID identici. Essere nel gruppo dei fusibili sul client mi è stato sufficiente per leggere /etc/fuse.conf su Ubuntu, poiché ho scoperto che il file era impostato rw_r______ root: fuse

1
Se si intende utilizzare l'opzione di mount allow_other come suggerisce la risposta precedente, tenere presente che il kernel di Linux ha un bug di sicurezza non risolto che influenza FUSE. Vedi github.com/libfuse/libfuse/issues/15
MountainX
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.