Linux & Systèmes PDF Gratuit

Cours Les Liens sous Linux en PDF (Avancé)

Les liens sous Linux : notions essentielles et usages avancés. Un lien associe un nom à des données stockées dans le système de fichiers. On distingue liens matériels (hard links) et liens symboliques (symlinks) : la notion d'inode, le compteur de références et le déréférencement sont centraux pour l'administration et la maintenance. Document de 17 pages au format PDF, contenant exemples reproductibles et exercices pratiques pour une consultation hors ligne. Rédigé par Thierry Vaira. Méthodologie : sorties de commandes documentées et tests reproductibles sur systèmes Linux standards.

Objectifs d'apprentissage

  • Liens matériels (hard links) — définition et comportement au niveau de l'inode : création et inspection avec ln, interprétation du champ « links » dans ls -il et analyse des compteurs de références.
  • Liens symboliques (symlinks) — mécanisme de déréférencement et interactions avec readlink, chmod, rm et mv, ainsi que gestion des symlinks cassés.
  • Stockage : fast vs slow symlink — contraintes d'implémentation dans l'inode, impact sur performance et occupation disque ; reconnaissance via readlink et debugfs.
  • Outils et appels système — exemples d'utilisation de ln -s, ln, readlink, de l'appel système link() et de debugfs pour inspecter un inode.
  • Cas d'utilisation système — scénarios réels : gestion des versions (/usr/bin/gcc et /etc/alternatives), maintenance de /boot, points de jonction et scripts de démarrage.
  • Exercices et TP — séquences pratiques avec sorties de commandes reproduites pour valider les acquis en conditions réelles.

Tableau comparatif : Liens physiques vs symboliques

Le tableau ci‑dessous présente une comparaison directe pour comprendre les différences opérationnelles entre lien physique et lien symbolique. Il aide au choix en administration : création, contraintes selon le système de fichiers, comportement lors de la suppression et implications pour la gestion des inodes. La commande ln et ses variantes est citée lorsque pertinente.

Caractéristique Lien physique (hard link) Lien symbolique (symlink)
Inode Partage le même inode que la donnée ; même numéro d'inode pour chaque nom Possède son propre inode distinct ; contient une référence textuelle vers la cible
Système de fichiers Doit rester sur le même système de fichiers Peut pointer vers une cible sur un autre système de fichiers ou disque
Répertoire Création de hard links vers des répertoires généralement interdite pour éviter des cycles Peut référencer des répertoires sans contrainte de structure
Suppression L'espace est libéré uniquement quand le dernier lien matériel est supprimé (compteur de références) La suppression du symlink ne supprime pas la cible ; un symlink brisé reste si la cible est supprimée

Remarque importante : un lien physique n'est pas une duplication des données. Il crée un nom supplémentaire pointant vers le même inode et donc vers les mêmes blocs ; les données ne sont pas copiées. Cette distinction évite les confusions fréquentes entre « créer un hard link » et « faire une copie » du fichier.

# Créer un lien symbolique : cible → nom_du_lien
ln -s /chemin/vers/cible nom_lien

# Créer un lien matériel (hard link) : ajoute un nom pointant vers le même inode
ln /chemin/vers/fichier nom_hardlink

# Résoudre la cible d'un symlink (affiche la cible)
readlink -f nom_lien

# Lister avec numéros d'inode et compteur de liens
ls -il /chemin/vers

# Trouver tous les liens physiques pointant vers un fichier donné
find / -samefile /chemin/vers/fichier  # utile pour localiser hard links

# Rechercher symlinks cassés (GNU find : xtype l liste les liens dont la cible n'existe pas)
find / -xtype l -print

# Exemple pour forcer la création d'un symlink en remplaçant l'existant
ln -sf /nouvelle/cible nom_lien

📑 Sommaire du document

  • Cours Les Liens sous Linux en PDF (Avancé)

Pourquoi choisir ce cours ?

Rédigé par Thierry Vaira et diffusé sous licence GNU FDL, ce support privilégie l'approche pratique : commandes, sorties concrètes et explications d'implémentation (inodes, fast/slow symlink). Les exemples fournis (ls -il, debugfs, ln) facilitent l'application en production et l'élaboration de stratégies d'organisation adaptées aux contraintes systèmes. Contenu pertinent pour un tutoriel linux sur le thème hard link vs symlink et la gestion inodes.

👤 À qui s'adresse ce cours ?

  • Public cible : administrateurs systèmes, ingénieurs DevOps, étudiants en systèmes Unix/Linux et développeurs concernés par la gestion des fichiers, la maintenance et les implications au niveau des inodes et des points de montage.
  • Prérequis : connaissance du shell Linux, maîtrise des commandes de fichiers (ls, mv, rm), notions de permissions POSIX et compréhension de base des systèmes de fichiers.

Erreurs courantes et dépannage

  • Identifier un symlink cassé : ls -l montre une flèche vers la cible ; readlink -f permet de tester la résolution. Pour localiser symlinks dont la cible est absente, utiliser find / -xtype l -print (GNU find).
  • Vérifier l'existence de la cible : test -e /chemin/vers/cible ou [ -e /chemin/vers/cible ] && echo "ok". Si la cible a été déplacée, corriger le symlink ou recréer un lien approprié.
  • Réparer un symlink : supprimer le lien cassé (rm nom_lien) puis recréer le symlink avec la bonne cible (ln -s /nouveau/chemin nom_lien) ou forcer la mise à jour (ln -sf).
  • Cas des hard links : pour localiser tous les noms pointant vers les mêmes données, exécuter find / -samefile /chemin/vers/fichier. Supprimer un nom n'affecte pas les autres hard links tant qu'en reste au moins un.
  • Permissions et droits : les permissions appliquées au fichier cible s'appliquent à tous les hard links ; pour les symlinks, les permissions du lien ne contrôlent pas l'accès à la cible.
  • Outils d'inspection : debugfs (requiert privilèges) permet d'inspecter l'inode et de différencier fast/slow symlink ; stat fournit métadonnées utiles pour le diagnostic.

❓ Foire Aux Questions (FAQ)

Que se passe-t-il au niveau de l'inode quand on supprime le dernier lien matériel ?
La suppression décrémente le compteur de références de l'inode ; si ce compteur atteint zéro, le système marque l'espace occupé comme libre et les blocs associés peuvent être réalloués. Le fichier reste accessible tant qu'au moins un lien matériel existe.
Comment repérer un fast symlink et quand le système bascule-t-il sur slow symlink ?
Le fast symlink stocke la chaîne cible dans l'inode (visible via debugfs ou attributs spécifiques), tandis que le slow symlink stocke la cible dans des blocs de données. Le basculement intervient lorsque la longueur de la chaîne dépasse la capacité réservée dans l'inode (limite typiquement de l'ordre de 128 ou 256 octets selon l'implémentation).