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
pour 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 au client en tant qu'un autre 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 que 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?
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 eu d'autorisations de lecture pour d'autres utilisateurs sur ma boîte Ubuntu. J'ai donc changé cela aussi et maintenant je peux accéder au répertoire avec n'importe quel utilisateur.