web-dev-qa-db-fra.com

Symlink d'un poste de travail à un autre sans monter

J'essaie de créer un lien symbolique d'un fichier sur un poste de travail Linux à un autre poste de travail Linux, sans avoir à "monter" d'actions réseau. Voici ce que j'essaie de faire, mais je ne peux pas le faire fonctionner.

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

Windows a une syntaxe spéciale \\MACHINE\DIRECTORY…\FILE Signification du fichier situé à \DIRECTORY…\FILE sur la machine appelée \\MACHINE sur le [~ # ~ # ~] smb [~ # ~] Protocole. Ceci est intégré au système d'exploitation et spécialisé dans un protocole réseau.

Linux a un système de fichiers flexible basé sur la notion de Montage . Les systèmes de fichiers sont connectés à un répertoire existant et l'administrateur choisit comment organiser la hiérarchie de la répertoire. Pour plus de fond, lisez Qu'est-ce que l'on entend par montage d'un périphérique sous Linux ? , Pourquoi le système de fichiers de Linux est-il conçu comme un arborescence unique ? et Quels points de montage existent sur un système de Linux typique ? . Linux prend en charge de nombreux systèmes de fichiers réseau (c'est-à-dire des systèmes de fichiers qui permet à une machine d'accéder aux 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, le chemin SMB est Windows's. Cependant Linux n'exporte pas ses fichiers par défaut: Vous devez installer un serveur NFS. Un serveur NFS est disponible dans tout Distributions Linux, mais nécessite un peu de configuration (vous devez enregistrer les répertoires que vous souhaitez exporter dans le fichier /etc/exports ). En outre, NFS provient d'un moment plus doux lorsque les attaquants sur le réseau local n'étaient pas une préoccupation et la sécurisation de cela nécessite un peu de connaissances sur les pare-feu qui dépasse la portée de cette réponse. Pour faire le répertoire /some/where de la machine distante foo.example.com disponible à l'emplacement /local/dir (qui doit être un répertoire existant), en supposant qu'il soit exporté par la machine distante, exécutez la commande suivante en tant que root:

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

Le moyen facile d'accéder à des fichiers distants avec à côté de NO SETUP est sur SSHFS. Tout ce dont vous avez besoin est d'installer un serveur SSH sur la machine distante et du package sshfs sur la machine locale. Vous devez également générer une clé (voir Comment créer un travail de connexion sans mot de passe ), bien que vous n'ayez pas avoir Pour le faire si cela ne vous dérange pas d'entrer votre mot de passe à chaque fois. SSH est en outre utile pour exécuter des commandes sur la machine distante. Pour faire le répertoire /some/where de la machine distante foo.example.com disponible à l'emplacement /local/dir (qui doit être un répertoire existant) sur SSHFS, exécutez la commande suivante (comme utilisateur habituel):

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

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

Vous pouvez configurer un Automounter (telle que autofs) de sorte que l'accès à certains répertoires monte automatiquement des répertoires de certaines machines distantes. Par exemple, une configuration commune organise que le système de fichiers Autofs est monté sur le répertoire /net, et accéder à /net/MACHINE/DIRECTORY provoque le répertoire distant /DIRECTORY de /net/MACHINE Pour être monté sur NFS à cet endroit (et il sera démontré après une certaine période d'inactivité). La machine distante doit bien sûr disposer d'un serveur NFS configurant et de permettre la connexion.

Il est possible de mettre en place une automointer avec des SSHFS. Voir SSHF totalement sans soudure sous Linux à l'aide de fusible et autofs et autofs et sshfs - le couple parfait Pour des tutoriels rapides; en un mot:

  1. Installez 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 ID utilisateur et votre ID de groupe (Run id -u et id -g montrer ces valeurs). Créez le répertoire /mnt/sshfs.

  3. Créez un fichier /etc/auto.sshfs contenant des lignes comme les suivantes:

    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 que vous souhaitez accéder comme localement, via le chemin /mnt/sshfs/machinename.

AUTOSSHFS fournit une configuration plus pratique Autofs + SSHFS.

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 aurez besoin d'organiser manuellement ou automatiquement pour /sharedFolder de 10.0.1.103 Pour être monté à /net/10.0.1.103/sharedFolder.

Pour ce que ça vaut la peine ...

J'ai travaillé sur un petit outil appelé Lionfs qui est basé sur Raphael S. Carvalho's Ghostfs . L'objectif est d'autoriser des liens symboliques pointant sur une [~ # ~ # ~ # ~ ~] . Il est assez incomplet, j'ai beaucoup de problèmes et ne prend actuellement en charge que HTTP. fusible (système de fichiers dans l'espace utilisateur) est utilisé pour gérer l'arrière-plan.

0