dimanche 27 octobre 2013

Le piège du chemin absolu

Dans la série 'Le piège', voici 'Le piège du chemin absolu' (le premier épisode  de la série se trouve ici).
Au départ nous avons installé une distribution (disons Manjaro) avec une partition séparée pour les dossiers personnels (montée en /home) et un utilisateur appelé toto.
Ensuite, à côté de cette distribution, nous en avons installé une autre (disons Xubuntu) utilisant la même partition séparée pour les données. Nous avons appelé l'utilisateur totox et non pas toto afin d'avoir un autre dossier personnel, ceci pour éviter les conflits entre fichiers de configuration de versions différentes. Cependant nous voulons dans Xubuntu travailler avec les mêmes données que dans Manjaro. Comme totox dans Xubuntu a le même id (1000) que toto dans Manjaro, aucun problème de droits ne pourra s'y opposer. Donc travaillant dans Xubuntu où nous sommes totox, nous supprimons le répertoire Documents de notre dossier personnel (/home/totox) et effectuons un glisser-déposer du répertoire Documents de /home/toto vers /home/totox


et dans le menu contextuel qui surgit, nous sélectionnons 'Lier ici':


Voilà c'est fait:


Lorsque nous cliquons sur le lien 'Documents', nous accédons directement aux documents de toto:



Comme nous sommes insatiable, nous installons encore une autre distribution (par exemple Fedora) avec cette fois-ci une partition pour les données qui n'est pas celle utilisée pour Manjaro et Xubuntu.
Rien ne nous empêche donc d'appeler notre utilisateur toto.
Et finalement nous installons Kubuntu: utilisateur totok et même partition montée dans /home que Fedora.
Tout est en place pour que le piège fonctionne!
Dans Kubuntu, nous voulons accéder au dossier personnel de totox (utilisateur de Xubuntu).
Nous devons pour ce faire monter la partition contenant ce dossier. Afin de la retrouver plus facilement, nous avons donné à cette partition (commande e2label) le label home-b.
Pour la monter il suffit de cliquer sur ce qui convient dans la barre latérale du navigateur de fichiers:


La partition est alors montée dans /media/home-b:


nous cliquons sur 'Documents' et nous tombons dans le piège! Les données ne sont pas celles attendues:


Essayons de comprendre ce qu'il en est en ouvrant un (émulateur de) terminal au niveau du dossier 'totox' et en y lançant la commande 'ls -l':


Nous constatons que le chemin contenu dans le lien 'Documents' est un chemin absolu: il part toujours de la racine du système quel que soit l'endroit où se trouve le lien. En fait les données que nous avons affichées sont les données du toto de Fedora (et non celles du toto de Manjaro).
il faudrait remplacer ce chemin absolu par un chemin relatif. Pour cela il suffit d'exécuter la commande

ln -sf ../toto/Documents .

(Le point final fait partie de la commande: il symbolise le répertoire courant)


Le chemin part maintenant du répertoire parent du dossier totox (donc de /media/home-b) et il aboutit au bon endroit:




Si nous sommes dans Xubuntu, le répertoire parent, départ du chemin, est maintenant /home et de nouveau nous atterrissons là où nous voulons aller.