web-dev-qa-db-fra.com

Comment partager un dossier avec une autre machine Linux sur le même réseau domestique?

J'essaie de partager un dossier sur une machine Ubuntu avec une autre machine Ubuntu du même réseau domestique. Lorsque je clique avec le bouton droit sur le dossier et que je choisis Options de partage, il me dit que je dois installer les services de partage réseau Windows pour pouvoir partager des dossiers. Qu'est-ce que Windows a à voir avec ça? Je n'essaie pas de partager avec une machine Windows ...

42
EmmyS

Qu'est-ce que Windows a à voir avec ça? Je n'essaie pas de partager avec une machine Windows ...

Vous avez raison, cela peut être déroutant. Alors permettez-moi d'essayer de clarifier les termes tout d'abord:

La façon dont Windows partage les fichiers et les imprimantes s'appelle SMB. Les membres du projet SAMBA ont mis en œuvre tous les protocoles et spécifications de Microsoft pour Linux. Ubuntu prend donc en charge le même type de partage de fichiers que Windows, appelé Samba.

  • Vous pouvez utiliser SAMBA pour partager des fichiers entre des machines Linux. En fait, vous pouvez le préférer si vous avez par exemple un ami avec son ami. Ordinateur sous Windows.

  • Vous pouvez également utiliser la méthode Linux de partage de fichiers, à savoir NFS (Network File System) - cette réponse à une question précédente explique comment faire. il. (mais c'est plutôt technique)

Ainsi, lorsque la boîte de dialogue Options de partage vous demande d’installer les packages, vous n’installez aucun logiciel Microsoft ou quelque chose du genre. Allez-y et faites-le, c'est parfaitement sûr.

Addenda:

Vous pouvez simplement activer le partage avant de suivre les instructions de Salih Emin. si cela ne fonctionne pas, vous recevrez un simple avertissement, vous pourrez alors suivre les étapes décrites par Salih si nécessaire. Je l'ai essayé sur un système fraîchement installé et à jour, et j'avais vraiment besoin de le faire.

22
Stefano Palazzo

Il existe actuellement un petit bogue dans Lucid, répertorié dans le tableau de bord: bogue n ° 536766 . Ce bogue n’invite pas l’utilisateur à installer les packages nécessaires à la configuration du partage de fichiers. En attendant, voici une solution rapide.

Vous devez installer libapache2-mod-dnssd et redémarrer. Cliquez sur ce lien pour l'installer ou recherchez libapache2-mod-dnssd dans le centre logiciel.

Une fois que vous l'avez installé, allez sur Système → Préférences → Partage de fichiers personnels , puis cochez la case 'Partager les fichiers publics sur le réseau'.

alt text

Ceci fait, vous devriez pouvoir visualiser tous les autres ordinateurs de votre réseau qui ont autorisé le partage de fichiers public dans le dossier Public. Cliquez simplement sur Lieux → Réseau . Vous devriez y voir tous les ordinateurs disponibles et leurs dossiers publics partagés.

Double-cliquez sur l'icône du serveur pour monter le dossier public approprié sur votre bureau.

Via texte du lien

8
Salih Emin

Vous pouvez simplement exécuter un serveur simpleHTTP sur la machine Linux et accéder au même sur l’autre machine.

Pas :

  1. commencez par démarrer le terminal à partir du dossier à partager.
  2. run in terminal - python -m SimpleHTTPServer
  3. vérifiez votre ip en utilisant ifconfig.
  4. entrez l'adresse IP du navigateur de l'autre machine: 8000 (par exemple, si votre adresse IP est 127.3.4.123, saisissez ensuite 127.3.4.123:8000 dans le navigateur)

Vous obtenez les fichiers requis dans le dossier à télécharger.

5
John

Vous pouvez installer "qweborf". Il partagera le répertoire via HTTP et les autres hôtes pourront y accéder avec un navigateur.

Il peut également activer webdav et permettre au répertoire d'être monté en tant que système de fichiers en lecture/écriture (testé avec davfs2, KDE, Gnome2, OsX).

2
LtWorf

Je crois que c’est ce qui est décrit dans les paquets SAMBA, ou c’est au moins une partie de leur description. Au lieu de cela, vous pouvez essayer Préférences-> Partage de fichiers qui, je crois, utilise un mécanisme différent. Samba est une chose pratique à installer cependant.

2
Nerdfest

Si vous souhaitez une intégration transparente dans Ubuntu et que la compatibilité Windows ne vous intéresse pas, SSH est votre bon à rien.

Voir Comment puis-je partager des fichiers entre deux ordinateurs Linux sur un réseau local?

Vous devrez peut-être installer le serveur SSH avec:

Sudo apt-get install openssh-server

À partir de l'application de gestion de fichiers sur votre client, vous pouvez accéder à votre serveur avec:

sftp://servername.local

Pour accéder aux fichiers depuis un terminal ou par programme, utilisez sshfs pour créer un point de montage dans le système de fichiers du client.

2
nobar

Pour les réseaux exclusivement Linux, je trouve SSHFS natif, stable et extrêmement rapide. J'ai deux machines Xubuntu (18.04) partageant/les dossiers personnels sur SSH.

Voici comment configurer cela sshfs et se reconnecter automatiquement après le redémarrage à l'aide de fstab sans avoir à fournir un mot de passe. Un grand merci à tilisateur du serveur par défaut, kubanczyk pour la reconnexion après une suspension/reprise à distance.

J'utiliserai "Local machine - surfbox" pour l'ordinateur auquel vous vous connectez et "Remote machine - devbox" pour l'ordinateur auquel vous vous connectez.

Remplacez "remoteuser" ci-dessous par le nom d'utilisateur auquel vous vous connectez sur la machine distante et "localuser" par le nom d'utilisateur auquel vous vous connectez sur la machine locale. Pour vérifier les noms d'utilisateur, saisissez echo $USER dans le terminal sur les ordinateurs distants et locaux.

Vérifiez également votre ID utilisateur et votre ID groupe, ils devraient tous deux être 1000.

GroupID: id -g localuser UserID: id -u localuser

1. Obtenez les adresses IP de vos machines locales et distantes.

hostname -I

Je vais utiliser 192.168.1.150 pour la machine locale ('surfbox') et 192.168.1.151 pour la machine distante ('devbox')

2. Installer des packages sur des ordinateurs locaux et distants

Sudo apt install sshfs Fuse ssh

3. Créez un groupe Fuse et ajoutez-lui un utilisateur local

Créer un groupe: Sudo groupadd Fuse

Ajoutez un utilisateur local au groupe: Sudo usermod -a -G Fuse $user

4. Activer "allow_other" dans la configuration de fusible

Nous aurons besoin de cette option lors du montage dans fstab

Éditez /etc/Fuse.conf avec votre éditeur de ligne de commande. Supprimez le hashtag avant user_allow_other et enregistrez.

5. Générer des clés SSH sur la machine locale

Ne fournissez pas de mot de passe lorsque vous y êtes invité . Appuyez simplement sur Entrée pour laisser en blanc.

ssh-keygen -t rsa -C [email protected]

Les clés sont stockées dans le dossier répertoire /.ssh de la machine locale

6. Transférez la clé publique SSH de votre machine locale vers la machine distante.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Un mot de passe vous sera demandé pour un utilisateur distant sur un ordinateur distant. La clé publique de la machine locale est maintenant ajoutée au fichier ~/.ssh/allowed_keys sur la machine distante.

7. Créez un répertoire sur le dossier Ordinateur local/mnt où vous monterez le dossier Ordinateur distant/Accueil.

Choisissez un nom qui ait du sens pour votre ordinateur distant.

Sudo mkdir /mnt/devboxhome

8. Montez le répertoire machine/home distant à partir du terminal

La syntaxe pour sshfs est

sshfs [user@]Host:[directory] mountpoint [options]

nous utilisons

Sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

exemple: en supposant que "steve" est le nom d'utilisateur sur les machines locales et distantes

Sudo sshfs [email protected]:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

Comme vous avez transféré la clé publique RSA sur la machine distante, vous ne devez pas demander de mot de passe pour l'utilisateur distant.

Vous recevrez un avertissement indiquant que la machine n'est pas approuvée et que vous devez lui indiquer si elle doit être ajoutée. Ajoutez la machine distante comme approuvée.

9. Vérifier: Parcourir le répertoire de la machine distante/home

Dans le terminal sur la machine locale, vous pouvez maintenant lister le répertoire machine/home distant sous/mnt/devboxhome

cd /mnt/devboxhome ls

ou utilisez Nautilus pour parcourir le répertoire. Génial.

10. Activer la reconnexion après le redémarrage

Nous allons ajouter une entrée dans/etc/fstab pour que cela se produise. Vous aurez besoin de votre identifiant d'utilisateur local de la machine et de votre identifiant de groupe - voir intro si vous avez manqué ceci Éditez/etc/fstab avec votre éditeur de ligne de commande et ajoutez ces deux lignes à la fin de/etc/fstab

# Mount devbox at boot [email protected]:/home/[remoteuser]/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connect fait attendre le noyau jusqu'à ce que le réseau soit opérationnel jusqu'à ce qu'il tente de monter le répertoire sur la machine distante.
  • Comme nous sommes en train d’exécuter en tant que root au démarrage, nous devons spécifier le fichier de clé qui est stocké dans le répertoire de base de localuser.
  • allow_other - les utilisateurs autres que celui qui effectue le montage peuvent accéder au système de fichiers monté.
  • idmap = user - ne traduit que l'UID de l'utilisateur qui se connecte
  • reconnectez-vous, ServersLiveInterval, ServerAliveCountMax - ssh envoie des pings persistants. Si ServerAliveCountMax échoue plusieurs fois, reconnectez-vous.

Un utilisateur qui se connecte en tant que steve sur des machines locales et distantes aurait:

[email protected]:/home/steve/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

IMPORTANT: une barre oblique après le répertoire distant: [email protected]:/home/steve /

enregistrer/etc/fstab et ....

11. Redémarrage

Vous devriez maintenant pouvoir accéder au répertoire de la machine distante/home dans la machine locale/mnt/devboxhome. Dans Nautilus, vous pouvez faire glisser ce dossier dans la barre des emplacements.

12. répéter

Répétez les mêmes étapes sur la machine distante pour rendre le répertoire/home de la machine locale partagé.

2
zx81roadkill

Ma façon de partager des fichiers:

Sudo npm install -g http-server

Allez dans le dossier que vous aimez partager, ouvrez le terminal et lancez cette commande:

http-server -o 

Vous pourrez accéder à ce dossier sur toutes les machines du même réseau à l'adresse IP mentionnée par le résultat de cette commande.

0
rehman_00001