GNU/Linux >> Tutoriels Linux >  >> Linux

Lien symbolique d'un poste de travail à un autre sans montage

Vous ne pouvez pas :

Un lien symbolique est simplement un inode supplémentaire (une structure qui pointe vers le fichier) et cet inode se compose, entre autres, d'un deviceId et un inode pointer . Le deviceId pointe effectivement vers un fichier spécial de périphérique dans le /dev répertoire et le inode pointer pointe vers un bloc sur cet appareil.

Votre emplacement réseau de 10.0.1.103 n'a pas et ne peut pas avoir de deviceId (ce n'est pas en /dev ) par conséquent, vous ne pouvez pas avoir de lien symbolique vers un emplacement réseau.

En revanche, un partage réseau monté aura un deviceId c'est pourquoi vous pouvez créer un lien symbolique vers un emplacement monté.


Windows a une syntaxe spéciale \\MACHINE\DIRECTORY…\FILE c'est-à-dire le fichier situé à \DIRECTORY…\FILE sur la machine appelée \\MACHINE via le protocole SMB. Ceci est intégré au système d'exploitation et spécialisé dans un protocole réseau.

Linux dispose d'un système de fichiers flexible basé sur la notion de montage. Les systèmes de fichiers sont attachés à un répertoire existant et l'administrateur peut choisir comment organiser la hiérarchie des répertoires. Pour plus d'informations, lisez Que signifie monter un périphérique sous Linux ?, Pourquoi le système de fichiers de Linux est-il conçu comme une arborescence de répertoires unique ? et Quels points de montage existent sur un système Linux typique ?. Linux prend en charge de nombreux systèmes de fichiers réseau (c'est-à-dire des systèmes de fichiers qui permettent à une machine d'accéder à des fichiers sur une autre machine), y compris NFS, SMB, SSHFS, etc.

NFS peut être considéré comme le système de fichiers réseau natif de Linux, tout comme SMB l'est pour Windows. Cependant Linux n'exporte pas ses fichiers par défaut :vous devez installer un serveur NFS. Un serveur NFS est disponible dans toutes les distributions Linux, mais nécessite un peu d'installation (vous devez enregistrer les répertoires que vous souhaitez exporter dans le fichier /etc/exports ). De plus, NFS date d'une époque plus douce où les attaquants sur le réseau local n'étaient pas un problème, et sa sécurisation nécessite un peu de connaissances sur les pare-feu, ce qui dépasse le cadre de cette réponse. Pour rendre le répertoire /some/where depuis la machine distante foo.example.com disponible à l'adresse /local/dir (qui doit être un répertoire existant), en supposant qu'il est exporté par la machine distante, exécutez la commande suivante en tant que root :

mount foo.example.com:/some/where /local/dir

Le moyen le plus simple d'accéder à des fichiers distants sans aucune configuration est via SSHFS. Tout ce dont vous avez besoin est d'installer un serveur SSH sur la machine distante, et le sshfs package sur la machine locale. Vous devez également générer une clé (voir Comment faire fonctionner la connexion sans mot de passe), bien que vous n'ayez pas pour le faire si cela ne vous dérange pas d'entrer votre mot de passe à chaque fois. SSH est également utile pour exécuter des commandes sur la machine distante. Pour rendre le répertoire /some/where depuis la machine distante foo.example.com disponible à l'adresse /local/dir (qui doit être un répertoire existant) sur SSHFS, exécutez la commande suivante (en tant qu'utilisateur habituel) :

sshfs foo.example.com:/some/where /local/dir

Linux peut être un serveur ou un client pour le protocole SMB (communiquant avec des machines Windows, voire avec d'autres machines Linux bien qu'il soit moins bien intégré que d'autres protocoles) via le logiciel Samba.

Vous pouvez configurer un automonteur (tel que autofs ) afin que l'accès à certains répertoires monte automatiquement les répertoires à partir d'une machine distante. Par exemple, une configuration courante fait en sorte que le système de fichiers autofs soit monté sur le répertoire /net , et accéder à /net/MACHINE/DIRECTORY provoque le répertoire distant /DIRECTORY à partir de /net/MACHINE être monté sur NFS à cet emplacement (et il sera démonté après une certaine période d'inactivité). La machine distante doit bien sûr avoir un serveur NFS configuré et permettant cette connexion.

Il est possible de configurer un automonteur avec SSHFS. Voir Totally Seamless SSHFS sous Linux en utilisant Fuse et Autofs et Autofs et sshfs - le couple parfait pour des tutoriels rapides ; en bref :

  1. Installer autofs et sshfs .
  2. Ajoutez la ligne suivante à /etc/auto.master :

    /mnt/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
    

    Remplacez les deux occurrences de 1000 par votre identifiant d'utilisateur et votre identifiant de groupe (exécutez id -u et id -g pour afficher ces valeurs). Créer le répertoire /mnt/sshfs .

  3. Créer un fichier /etc/auto.sshfs contenant des lignes comme celles-ci :

    machinename -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#machinename.example.com\:
    

    machinename.example.com est le nom d'hôte (ou l'adresse IP) de la machine distante et machinename est le nom auquel vous souhaitez y accéder en local, via le chemin /mnt/sshfs/machinename .

Autosshfs fournit une configuration autofs+sshfs plus pratique.

Enfin, concernant la partie symbolique :vous pouvez créer un lien symbolique vers un chemin inexistant. Le lien symbolique est le deuxième argument, vous aurez donc besoin de quelque chose comme

ln -s /net/10.0.1.103/sharedFolder/symlinkFile.mov /link/to/local/file.mov

Vous devrez organiser manuellement ou automatiquement /sharedFolder de 10.0.1.103 à monter à /net/10.0.1.103/sharedFolder .


Linux
  1. Comment copier les paramètres d'une machine à une autre ?

  2. Copier les dernières N-lignes d'un fichier à un autre ?

  3. Comment déplacer (et écraser) tous les fichiers d'un répertoire à un autre ?

  4. Quel est le moyen le plus rapide de déplacer un million d'images d'un répertoire à un autre sous Linux ?

  5. Comment changer atomiquement un lien symbolique vers un répertoire dans busybox?

Reptyr - Déplacer un processus en cours d'exécution d'un terminal à un autre sans le fermer

Comment copier un fichier d'un autre répertoire vers celui en cours ?

Utilisation des outils mongodb (mongodump, mongorestore) depuis une autre machine

Déplacer un volume logique d'un groupe de volumes à un autre

Comment puis-je monter un périphérique bloc d'un ordinateur à un autre via le réseau en tant que périphérique bloc ?

Pouvons-nous monter plusieurs disques dans un seul répertoire ?