web-dev-qa-db-fra.com

Meilleure façon de monter un dossier distant

J'ai deux RasberryPi exécutant Debian Wheezy et je voudrais monter un dossier de l'ordinateur A sur l'ordinateur B.

Quelle est la meilleure façon (comme la plus efficace) de procéder?

Je peux le faire via SMB, mais pour Windows, je pense qu'il doit y avoir une meilleure façon de partager sur Linux.

44
cjburkha

Vous pouvez utiliser beaucoup de choses, parmi lesquelles les options populaires sont:

  • NFS
  • Samba/CIFS
  • SSHFS

Par facilité d'installation, je pense qu'ils devraient être placés dans cet ordre (en haut: le plus simple)

[~ # ~] sshfs [~ # ~]

Grâce à Fuse, vous pouvez monter des systèmes de fichiers distants via ssh. Je ne couvrirai pas comment, comme Cristopher l'a déjà très bien expliqué. Notez simplement que, pour monter le fichier automatiquement, il aura besoin d'un n peu plus de travail .

Samba

Il vous permettra d'utiliser des machines Windows et Unix pour accéder au dossier distant. Si ce n'est pas un gros problème pour vous, vous n'en tirerez probablement aucun bénéfice. Cependant, il est facile de le monter automatiquement sur init (entrez simplement les valeurs appropriées à /etc/fstab, comprenant username=<your-samba-username>,password=<your-samba-password> dans la colonne des options.

[~ # ~] nfs [~ # ~]

Il vous permettra de vous authentifier uniquement via IP (pas de nom d'utilisateur = plus rapide, uniquement à utiliser dans votre non hostile LAN) ou via Kerberos Tickets (trop douloureux pour seulement deux framboises; mais utile dans l'entreprise environnements).

Comme il prend en charge le mode noyau, il fonctionnera plus rapidement que sshfs. De plus, comme il n'y a aucun cryptage effectué il aura un meilleur débit, et dans le cas du petit Raspberry ARM, cela peut faire une différence.

En outre, il n'est pas si difficile de configurer simplement que vous faites confiance à votre réseau. Vous avez un support de montage automatique dans /etc/fstab aussi, et vous n'avez pas à mettre de données sensibles (telles que les noms d'utilisateur ou les mots de passe), et si vous avez vos noms d'utilisateur synchronisés (même /etc/passwd et /etc/group fichiers), vous pouvez utiliser le jeu d'outils d'autorisations POSIX habituel (chown, chgrp et chmod).

32
ssice

SSHFS est merveilleux. Il peut monter des répertoires distants dans un répertoire local avec Fuse . Les commandes ci-dessous utilisent # pour indiquer qu'une commande a été exécutée en tant que root, tandis que $ indique l'exécution en tant qu'utilisateur normal. Étant donné que le logiciel Fuse est requis, assurez-vous d'abord qu'il est disponible et fonctionne.

L'une des commandes lsmod et grep, ci-dessous, peut révéler si le logiciel est chargé et prêt à l'emploi. Le résultat de l'une ou l'autre commande indique que Fuse est disponible.

# lsmod | grep Fuse
$ grep -i Fuse /lib/modules/$(uname -r)/modules.builtin

S'il n'y a aucun résultat de l'une ou l'autre commande, essayez de charger le module du noyau sans redémarrer en utilisant modprobe et vérifiez à nouveau.

# modprobe Fuse
# lsmod Fuse

Si le chargement du module échoue, installez le logiciel avec apt-get.

# apt-get install Fuse

Vérifiez à nouveau après l'installation.

# modprobe Fuse
# lsmod Fuse

Le fusible doit être installé et en marche avant de continuer.


Vérifiez les autorisations de /dev/Fuse. Les autorisations doivent fournir à votre compte d'utilisateur normal un accès en lecture et en écriture. Ignorez cette partie si vous avez déterminé que votre compte d'utilisateur normal dispose déjà d'une autorisation de lecture et d'écriture sur /dev/Fuse.

# ls -l /dev/Fuse

La sortie peut ressembler à l'une des suivantes.

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root Fuse (only root can read/write)
crw-rw---- 1 root Fuse (root and members of Fuse group can read/write)

En 2013, mon Debian a créé /dev/Fuse avec 0600 autorisations, propriétaire root, propriétaire du groupe Fuse. Je devais laisser le groupe Fuse utiliser l'appareil et ajouter mon compte d'utilisateur normal au groupe, comme indiqué ci-dessous.

# usermod -aG Fuse $your_regular_user_account
# chmod 0660 /dev/Fuse

Si la nouvelle appartenance au groupe était requise, déconnectez-vous et reconnectez-vous pour devenir membre du groupe.


Ensuite, installez ssh des deux côtés comme suit.

# apt-get install ssh

Cette réponse a été écrite pour Debian, mais sur Ubuntu 18.x au moins, openssh-client, Fuse, et quelques autres packages font partie du package Ubuntu sshfs. Le logiciel sshfs est requis côté client, mais il peut être installé des deux côtés si vous le souhaitez. L'une des dépendances du package est Fuse, mais le programme d'installation ignore les logiciels déjà installés.

# Ubuntu 18.x: 
# apt-get install sshfs

Avec Fuse et ssh disponibles et avec l'autorisation d'utiliser l'appareil, /dev/Fuse, crée un point de montage pour le système de fichiers distant; et, montez ce système de fichiers distant localement comme suit.

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

Pour monter un répertoire autre que home, spécifiez-le après les deux points.

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

Pour démonter, utilisez fusermount.

fusermount -u /mnt/$directory_name

Si vous avez une machine Windows, elle peut également utiliser SSHFS avec win-sshfs . Ce logiciel "mappera un lecteur" avec SSHFS, afin que vous puissiez avoir une lettre de lecteur Windows contenant le répertoire distant.

38
Christopher

Sous linux, vous choisiriez pour NFS (consultez également l'article sur archwiki à ce sujet qui peut avoir des informations applicables pour votre distribution) ainsi que). Il a des fonctionnalités plus avancées que la samba. Si vous avez besoin de verrouiller (c'est-à-dire des accès simultanés), vous devriez également regarder dans lockd car nfs est sans état. Cependant, il est plus difficile à configurer que smb. Je suggérerais d'essayer à la fois la samba et le nfs pour voir lequel convient à vos besoins.

7
Silverrocker

J'ai utilisé à la fois le lecteur net SFTP et ExpanDrive dans le passé et je peux vous dire que sshfs surpasse les deux sans poser de question.

1
sublime