Meilleur moyen de monter un dossier distant

40

J'ai deux RasberryPi sous Debian Wheezy et j'aimerais monter un dossier à partir de l'ordinateur A sur l'ordinateur B.

Quel est le meilleur moyen (comme le plus efficace) de le faire?

Je peux le faire via SMB, mais c'est pour Windows, je pense qu'il doit y avoir un meilleur moyen de partager à travers Linux.

cjburkha
la source

Réponses:

31

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 facile)

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 faudra un peu plus de travail .

Samba

Cela 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 profiterez probablement pas. Cependant, il est facile de le monter automatiquement sur init (il suffit d'entrer les valeurs appropriées à /etc/fstab, y compris username=<your-samba-username>,password=<your-samba-password>dans la colonne options.

NFS

Il vous permettra de vous authentifier uniquement via IP (pas de nom d’utilisateur = plus rapide, mais uniquement dans votre réseau local non hostile ) ou via des tickets Kerberos (trop pénible pour deux framboises, mais utile dans les environnements d’entreprise).

Comme il prend en charge le mode noyau, il fonctionnera plus rapidement que sshfs. De plus, comme aucun chiffrement n’est effectué , le débit sera meilleur, et dans le cas du minuscule ARM Raspberry, cela pourrait faire la différence.

En outre, il n’est pas si pénible de configurer simplement vous faites confiance à votre réseau. Vous avez également la prise en charge du /etc/fstabmontage automatique, et vous n'avez pas besoin de mettre des données sensibles (telles que des noms d'utilisateur ou des mots de passe), et si vous avez vos noms d'utilisateur synchronisés (mêmes /etc/passwdet /etc/groupfichiers), vous pouvez utiliser le jeu d'outils d'autorisations POSIX habituels ( chown, chgrpet chmod).

ssice
la source
J'utilise mon Pi en tant que serveur NFS avec des disques contenant principalement mes films et autres supports (c'est -à- dire, des éléments non critiques pour le système, pas '/ home /' ou quelque chose de similaire). NFS me permet de regarder un film sans devoir d'abord le copier sur le lecteur local, mais lorsque j'écris des fichiers sur le disque NFS, je préfère utiliser rsync. J'ai donc monté mes disques NFS en lecture seule et écrit des choses sur SSH (avec rsync). Cela m'empêche également de synchroniser accidentellement sur un disque monté NFS (ce qui est très inefficace).
Zrajm
@zrajm comment monter vos disques sur le pi?
FutuToad
arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
Zrajm
Samba peut confondre certaines applications Unix, notamment autour des autorisations ou de ce qui est stat()renvoyé, par exemple des choses qui dépendent du nlinknombre dont CIFS n'a aucune idée. SSHFS ne m'a pas vraiment impressionné, car il utilisait des commutateurs de contexte sur le serveur de fichiers et ne supportait pas le verrouillage nécessaire requis par les programmes internes. Donc, NFS ...
Thrig
38

SSHFS est merveilleux. Il peut monter des répertoires distants dans un répertoire local avec FUSE . Les commandes ci-dessous servent #à indiquer qu’une commande a été exécutée en tant que root, tandis qu’elles indiquent une $exécution en tant qu’utilisateur ordinaire. Comme le logiciel FUSE est requis, assurez-vous d’abord qu’il est disponible et qu’il fonctionne.

L'une des commandes lsmodet grep, ci-dessous, peut révéler si le logiciel est chargé et prêt à être utilisé. Un résultat de l'une ou l'autre commande indique qu'il fuseest disponible.

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

S'il n'y a aucun résultat avec l'une ou l'autre commande, essayez de charger le module du noyau sans redémarrage à l'aide de modprobeet 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

FUSE doit être installé et en cours d'exécution avant de continuer.


Vérifiez les autorisations de /dev/fuse. Les autorisations doivent fournir à votre compte d'utilisateur habituel un accès en lecture et en écriture. Ignorez cette partie si vous avez déterminé que votre compte d'utilisateur habituel dispose déjà des autorisations de lecture et d'écriture /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, ma Debian a été créée /dev/fuseavec les 0600autorisations, propriétaire root, propriétaire du groupe fuse. Je devais laisser le groupe de fusibles utiliser le périphérique et ajouter mon compte d'utilisateur habituel 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, connectez-vous et reconnectez-vous pour devenir membre du groupe.


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

# apt-get install ssh

Cette réponse a été écrit pour Debian, mais sur Ubuntu 18.x au moins, openssh-client, fuse, et quelques autres paquets sont une partie de l'Ubuntu sshfspackage. Le sshfslogiciel 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 paquet est fuse, mais le programme d'installation ignore les logiciels déjà installés.

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

Avec fuseet sshdisponible, et avec la permission d'utiliser le périphérique /dev/fuse, créez 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 aussi utiliser SSHFS avec win-sshfs . Ce logiciel "mappera un lecteur" avec SSHFS, de sorte que vous puissiez avoir une lettre de lecteur Windows contenant le répertoire distant.

Christopher
la source
1
Vous pouvez améliorer considérablement la vitesse de performance de SSHFS en utilisant des options supplémentaires. Voir cet article pour des comparaisons plus d'information et de vitesse avec NFS: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo
Hey - J'ai essayé d'utiliser vos instructions (ajustement à yum install fuse-sshfs.x86_64), mais quand je l'ai fait, modprobe fusecela ne m'a pas créé de groupe de fusibles. Alors quand j'ai fait usermod -a -G fuse [your-user], j'ai eu usermod: group 'fuse' does not exist. pouvez-vous aider? merci d'avance
amphibient
lsmod | grep fuserenvoie le résultat et j’ai /dev/fuse, m, qui appartient à root. alors vous dites que je vais bien sans le groupe?
Amphibient
oui, je reçoiscrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
amphibient
Après # apt-get install fuse-utils sshfs, le message "Impossible de localiser le paquet fuse-utils". Une idée pourquoi? (Ubuntu 18.04.01)
Kvothe
7

Sous Linux, vous choisiriez NFS (consultez également l'article sur archwiki qui contient des informations applicables à votre distribution). Il a des fonctionnalités plus avancées que la samba. Si vous devez verrouiller des fichiers (accès simultané), vous devez vous pencher sur lockd aswell car nfs est sans état. Cependant, il est plus difficile à configurer que smb. Je suggérerais d'essayer à la fois samba et nfs pour voir lequel correspond à vos besoins.

Silverrocker
la source
1

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

sublime
la source