Pourquoi SSHFS ne me laisse-t-il pas regarder dans un répertoire monté?

34

J'utilise SSHFS pour monter un répertoire sur un serveur distant. Il y a un utilisateur xxx sur le client et le serveur. UID et GID sont identiques sur les deux cases.

j'utilise

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

monter le répertoire sur le serveur distant. Lorsque je me connecte en tant que xxx sur le client, je n’ai aucun problème. Je peux cd dans / home / xxx / path_to / content.

Mais quand je me connecte sur le client en tant qu'utilisateur zzz, puis

$ ls -l /home/xxx/path_to

j'ai compris

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

et sur

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

Je reçois

ls: cannot access content: Permission denied

Quand je fais

$ ls -l /mnt

sur le serveur distant je reçois

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

Qu'est-ce que je fais mal? Les autorisations me semblent correctes. Ai-je tort?

Jan Deinhard
la source
Connectez-vous en tant qu'utilisateur xxx et donnez-nous le résultat de ls -ld /home/xxx/path_to/content?
quanta

Réponses:

42

J'ai trouvé la réponse moi-même. Le problème était que je n'ai pas utilisé l'option 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

Pour utiliser cette option, vous devez définir l'option user_allow_other dans /etc/fuse.conf. Quand j'ai fait cela, j'ai eu un autre problème. Le fichier /etc/fuse.conf n'a pas obtenu les autorisations de lecture pour les autres utilisateurs de ma boîte Ubuntu. J'ai donc également changé cela et je peux maintenant accéder au répertoire avec n'importe quel utilisateur.

Jan Deinhard
la source
5
Le fichier /etc/fuse.conf n'est pas supposé avoir d'options de lecture pour tout le monde. L'intention est que vous vous ajoutiez au groupe de fusibles afin de pouvoir le lire via les droits du groupe.
Jherico
1
Confirmant que la nécessité d'activer user_allow_other dans etc / fuse.conf sur le client était requise pour que mon utilisateur puisse accéder aux dossiers situés en dehors de mon répertoire de départ sur le serveur lors de l'accès au serveur à partir d'un UID et d'un GID identiques. Être dans le groupe de fusibles sur le client me suffisait pour lire /etc/fuse.conf sur Ubuntu, car j’ai trouvé que le fichier était placé. Rw_r______ racine: fuse
1
Si vous avez l'intention d'utiliser l'option de montage allow_other comme le suggère la réponse ci-dessus, sachez que le noyau Linux contient un bogue de sécurité non résolu qui affecte FUSE. Voir github.com/libfuse/libfuse/issues/15
MountainX