J'aimerais monter un répertoire distant via sshfs
sur ma machine Debian, par exemple à /work
. J'ai donc ajouté mon utilisateur au groupe Fuse
et je lance:
sshfs [email protected]:/remote/dir /work
et tout fonctionne bien. Cependant, il serait très agréable d’avoir le répertoire monté au démarrage. J'ai donc essayé l'entrée /etc/fstab
donnée ci-dessous:
sshfs#[email protected]:/remote/dir /work Fuse user,_netdev,reconnect,uid=1000,gid=1000,idmap=user 0 0
sshfs
demande le mot de passe et se monte presque correctement. Presque parce que ma user
habituelle n'a pas accès au répertoire monté et lorsque je lance ls -la /
, je reçois:
d????????? ? ? ? ? ? work
Comment puis-je l'obtenir avec les bonnes autorisations via fstab?
L'utilisation de l'option allow_other
dans /etc/fstab
permet à d'autres utilisateurs que celui qui effectue le montage réel d'accéder au système de fichiers monté. Lorsque vous démarrez votre système et montez votre sshfs, cela se fait par l'utilisateur root plutôt que par votre utilisateur habituel. Lorsque vous ajoutez allow_other
, d’autres utilisateurs que root peuvent accéder au point de montage. Les autorisations de fichiers sous le point de montage restent toujours les mêmes, alors si vous avez un répertoire avec le masque 0700 ici, il n'est pas accessible par personne d'autre que root et le propriétaire.
Donc, au lieu de
sshfs#[email protected]:/remote/dir /work Fuse user,_netdev,reconnect,uid=1000,gid=1000,idmap=user 0 0
utilisation
sshfs#[email protected]:/remote/dir /work Fuse user,_netdev,reconnect,uid=1000,gid=1000,idmap=user,allow_other 0 0
Cela a fait le tour pour moi au moins. Je n'ai pas testé cela en démarrant le système, mais en émettant la commande mount en tant que root, puis en essayant d'accéder au fichier sshfs monté en tant qu'utilisateur standard.
Aussi pour compléter la réponse précédente:
Vous devriez préférer la syntaxe [utilisateur] @ [hôte] à la syntaxe sshfs # [utilisateur] @ [hôte].
Assurez-vous d'autoriser les utilisateurs non root à spécifier l'option de montage allow_other dans /etc/Fuse.conf.
Assurez-vous d'utiliser chaque montage sshfs au moins une fois manuellement en tant qu'utilisateur root pour que la signature de l'hôte soit ajoutée au fichier .ssh/known_hosts.
$ Sudo sshfs [utilisateur] @ [hôte]: [chemin_distant] [chemin_local] -o allow_other, IdentityFile = [chemin_du_id_rsa]
De plus, en complément de la réponse acceptée: il est nécessaire que l'utilisateur sur la cible ait un droit sur Shell, sur la machine cible: Sudo chsh username
-> /bin/bash
.
J'ai eu un utilisateur qui avait/bin/false, et cela a posé des problèmes.