Linux Professional Institute Learning Logo.
Passer au contenu principal
  • Accueil
    • Toutes les ressources
    • Supports de Cours LPI
    • Devenez contributeur
    • Publishing Partners
    • Devenez Partenaire de Publication
    • À propos
    • FAQ
    • Contributeurs
    • Feuille de route
    • Contactez-nous
  • LPI.org
5.4 Leçon 1
Sujet 1 : Communauté Linux et carrière dans le logiciel libre
1.1 Évolution de Linux et systèmes d'exploitation populaires
  • 1.1 Leçon 1
1.2 Applications libres majeures
  • 1.2 Leçon 1
1.3 Logiciel à code source ouvert et licences
  • 1.3 Leçon 1
1.4 Compétences informatiques et travail sous Linux
  • 1.4 Leçon 1
Sujet 2 : Trouver son chemin sur un système Linux
2.1 Bases sur la ligne de commande
  • 2.1 Leçon 1
  • 2.1 Leçon 2
2.2 Utilisation de la ligne de commande pour obtenir de l'aide
  • 2.2 Leçon 1
2.3 Utilisation des répertoires et liste des fichiers
  • 2.3 Leçon 1
  • 2.3 Leçon 2
2.4 Création, déplacement et suppression de fichiers
  • 2.4 Leçon 1
Sujet 3 : Le pouvoir de la ligne de commande
3.1 Archivage de fichiers en ligne de commande
  • 3.1 Leçon 1
3.2 Recherche et extraction de données à partir de fichiers
  • 3.2 Leçon 1
  • 3.2 Leçon 2
3.3 Conversion de commandes en script
  • 3.3 Leçon 1
  • 3.3 Leçon 2
Sujet 4 : Le système d'exploitation Linux
4.1 Choix d'un système d'exploitation
  • 4.1 Leçon 1
4.2 Compréhension du matériel informatique
  • 4.2 Leçon 1
4.3 Localisation des données
  • 4.3 Leçon 1
  • 4.3 Leçon 2
4.4 Intégration au réseau
  • 4.4 Leçon 1
Sujet 5 : Sécurité et droits d'accès aux fichiers
5.1 Sécurité élémentaire et identification des catégories d'utilisateurs
  • 5.1 Leçon 1
5.2 Création des utilisateurs et des groupes
  • 5.2 Leçon 1
5.3 Gestion des propriétés et des droits d'accès aux fichiers
  • 5.3 Leçon 1
5.4 Répertoires et fichiers spéciaux
  • 5.4 Leçon 1
How to get certified
  1. Sujet 5 : Sécurité et droits d'accès aux fichiers
  2. 5.4 Répertoires et fichiers spéciaux
  3. 5.4 Leçon 1

5.4 Leçon 1

Certification :

Linux Essentials

Version :

1.6

Thème :

5 Sécurité et Permissions de Fichiers

Objectif :

5.4 Répertoires et Fichiers Spéciaux

Leçon:

1 sur 1

Introduction

Sous Linux, tout est traité comme un fichier. Cependant, certains fichiers reçoivent un traitement spécial, soit en raison de l’endroit où ils sont stockés, comme les fichiers temporaires, soit en raison de la manière dont ils interagissent avec le système de fichiers, comme les liens. Dans cette leçon, nous apprendrons où se trouvent ces fichiers, comment ils fonctionnent et comment les gérer.

Fichiers Temporaires

Les fichiers temporaires sont des fichiers utilisés par les programmes pour stocker des données qui ne sont nécessaires que pour une courte durée. Il peut s’agir de données de processus en cours d’exécution, de journaux de crash, de fichiers de travail d’une sauvegarde automatique, de fichiers intermédiaires utilisés lors d’une conversion de fichier, de fichiers de cache, etc.

Localisation des Fichiers Temporaires

La version 3.0 du FHS (Filesystem Hierarchy Standard) définit des emplacements standard pour les fichiers temporaires sur les systèmes Linux. Chaque emplacement a un but et un comportement différents, il est recommandé aux développeurs de suivre les conventions établies par le FHS lorsqu’ils écrivent des données temporaires sur le disque.

/tmp

Selon le FHS, les programmes ne doivent pas supposer que les fichiers écrits ici seront conservés entre les exécutions d’un programme. La recommandation est que ce répertoire soit effacé (tous les fichiers sont effacés) lors du démarrage du système, bien que cela ne soit pas obligatoire.

/var/tmp

Un autre emplacement pour les fichiers temporaires, mais celui-ci ne doit pas être effacé pendant le démarrage du système, c’est-à-dire que les fichiers stockés ici persisteront généralement entre les redémarrages.

/run

Ce répertoire contient les données des variables d’exécution utilisées par les processus en cours, telles que les fichiers d’identification des processus (.pid). Les programmes qui ont besoin de plus d’un fichier d’exécution peuvent créer des sous-répertoires ici. Cet emplacement doit être effacé lors du démarrage du système. Le but de ce répertoire était autrefois servi par /var/run, et sur certains systèmes, /var/run peut être un lien symbolique vers /run.

Notez que rien n’empêche un programme de créer des fichiers temporaires ailleurs dans le système, mais il est de bonne pratique de respecter les conventions fixées par le FHS.

Permissions sur les Fichiers Temporaires

Le fait d’avoir des répertoires temporaires à l’échelle du système sur un système multi-utilisateurs présente quelques difficultés concernant les permissions d’accès. Au premier abord, on pourrait penser que de tels répertoires seraient accessibles en écriture à tous, c’est-à-dire que tout utilisateur pourrait y écrire ou supprimer des données. Mais si cela était vrai, comment pourrions-nous empêcher un utilisateur d’effacer ou de modifier des fichiers créés par un autre ?

La solution est une permission spéciale appelée sticky bit (bit collant), qui s’applique à la fois aux répertoires et aux fichiers. Cependant, pour des raisons de sécurité, le noyau Linux ignore le sticky bit lorsqu’il est appliqué aux fichiers. Lorsque ce bit spécial est défini pour un répertoire, il empêche les utilisateurs de supprimer ou de renommer un fichier dans ce répertoire à moins qu’ils ne soient propriétaires du fichier.

Les répertoires avec le sticky bit activé affichent un t remplaçant le x sur la permission des autres dans la sortie de ls -l. Par exemple, vérifions les permissions pour les répertoires /tmp et /var/tmp :

$ ls -ldh /tmp/ /var/tmp/
drwxrwxrwt 25 root root 4,0K Jun  7 18:52 /tmp/
drwxrwxrwt 16 root root 4,0K Jun  7 09:15 /var/tmp/

Comme vous pouvez le voir par le t remplaçant le x sur la permission des autres, les deux répertoires ont le sticky bit activé.

Pour activer le sticky bit sur un répertoire avec chmod en mode numérique, utilisez la notation à quatre chiffres avec 1 comme premier chiffre. Par exemple :

$ chmod 1755 temp

définira le sticky bit pour le répertoire nommé temp et les permissions comme rwxr-xr-t.

Lorsque vous utilisez le mode symbolique, utilisez le paramètre t. Donc, +t pour activer le sticky bit, et -t pour le désactiver. Ainsi :

$ chmod +t temp

Comprendre les Liens

Nous avons déjà dit que sur Linux, tout est traité comme un fichier. Mais il existe un type de fichier spécial, appelé lien, et il y a deux types de liens sur un système Linux :

Liens symboliques

Appelés aussi liens souples, ils pointent vers le chemin d’un autre fichier. Si vous supprimez le fichier vers lequel le lien pointe (appelé cible), le lien existera toujours, mais il “cessera de fonctionner”, car il pointe maintenant vers “rien”.

Liens solides

Pensez à un lien solide comme un deuxième nom pour le fichier original. Ce ne sont pas des doublons, mais plutôt une entrée supplémentaire dans le système de fichiers pointant vers le même endroit (inode) sur le disque.

Un inode est une structure de données qui stocke les attributs d’un objet (comme un fichier ou un répertoire) sur un système de fichiers. Parmi ces attributs figurent le nom du fichier, les permissions, la propriété et les blocs du disque sur lesquels les données de l’objet sont stockées. Considérez cela comme une entrée dans un index, d’où le nom, qui vient de “index node”.

Travailler avec des Liens Solides

Création de Liens Solides

La commande pour créer un lien solide sur Linux est ln. La syntaxe de base est :

$ ln CIBLE  NOM_DU_LIEN

La CIBLE doit déjà exister (c’est le fichier vers lequel le lien pointera), et si la cible ne se trouve pas dans le répertoire actuel, ou si vous voulez créer le lien ailleurs, vous devez indiquer le chemin complet vers celui-ci. Par exemple, la commande :

$ ln target.txt /home/carol/Documents/hardlink

va créer un fichier nommé hardlink dans le répertoire /home/carol/Documents/, lié au fichier target.txt du répertoire courant.

Si vous omettez le dernier paramètre (NOM_DU_LIEN), un lien portant le même nom que la cible sera créé dans le répertoire courant.

Gestion des Liens Solides

Les liens solides sont des entrées dans le système de fichiers qui ont des noms différents mais qui pointent vers les mêmes données sur le disque. Tous ces noms sont identiques et peuvent être utilisés pour faire référence à un fichier. Si vous modifiez le contenu de l’un des noms, le contenu de tous les autres noms pointant vers ce fichier change puisque tous ces noms pointent vers les mêmes données. Si vous supprimez l’un des noms, les autres noms continueront à fonctionner.

Cela se produit parce que lorsque vous "supprimez" un fichier, les données ne sont pas réellement effacées du disque. Le système supprime simplement l’entrée de la table du système de fichiers qui pointe sur l’inode correspondant aux données du disque. Mais si vous avez une deuxième entrée pointant vers le même inode, vous pouvez toujours accéder aux données. Imaginez que deux routes convergent vers le même point. Même si vous bloquez ou redirigez l’une des routes, vous pouvez toujours atteindre la destination en utilisant l’autre.

Vous pouvez vérifier cela en utilisant le paramètre -i de ls. Considérez le contenu suivant d’un répertoire :

$ ls -li
total 224
3806696 -r--r--r-- 2 carol carol 111702 Jun  7 10:13 hardlink
3806696 -r--r--r-- 2 carol carol 111702 Jun  7 10:13 target.txt

Le numéro précédant les permissions est le numéro d’inode. Vous voyez que le fichier hardlink et le fichier target.txt ont le même numéro (3806696) ? C’est parce que l’un est un lien solide de l’autre.

Mais lequel est l’original et lequel est le lien ? On ne peut pas vraiment le dire, car à toutes fins pratiques, ils sont identiques.

Notez que chaque lien solide pointant vers un fichier augmente le nombre de liens du fichier. C’est le nombre juste après les permissions sur la sortie de ls -l. Par défaut, chaque fichier a un nombre de liens de 1 (les répertoires ont un nombre de 2), et chaque lien solide vers ce fichier augmente le nombre de liens de un. C’est donc la raison pour laquelle le nombre de liens est 2 pour les fichiers de la liste ci-dessus.

Contrairement aux liens symboliques, vous ne pouvez créer que des liens solides vers des fichiers, et le lien et la cible doivent tous deux résider dans le même système de fichiers.

Déplacement et Suppression des Liens Solides

Comme les liens solides sont traités comme des fichiers ordinaires, ils peuvent être supprimés avec rm et renommés ou déplacés dans le système de fichiers avec mv. Et puisqu’un lien solide pointe vers le même inode de la cible, il peut être déplacé librement, sans crainte de “casser” le lien.

Liens Symboliques

Création de Liens Symboliques

La commande utilisée pour créer un lien symbolique est également ln, mais avec le paramètre -s ajouté. Ainsi :

$ ln -s target.txt /home/carol/Documents/softlink

Cela créera un fichier nommé softlink dans le répertoire /home/carol/Documents/, pointant vers le fichier target.txt dans le répertoire courant.

Comme pour les liens solides, vous pouvez omettre le nom du lien pour créer un lien portant le même nom que la cible dans le répertoire courant.

Gestion des Liens Symboliques

Les liens symboliques pointent vers un autre chemin dans le système de fichiers. Vous pouvez créer des liens symboliques vers des fichiers et des répertoires, même sur des partitions différentes. Il est assez facile de repérer un lien symbolique sur la sortie de ls :

$ ls -lh
total 112K
-rw-r--r-- 1 carol carol 110K Jun  7 10:13 target.txt
lrwxrwxrwx 1 carol carol   12 Jun  7 10:14 softlink -> target.txt

Dans l’exemple ci-dessus, le premier caractère sur les permissions du fichier softlink est l, indiquant un lien symbolique. En outre, juste après le nom du fichier, nous voyons le nom de la cible vers laquelle le lien pointe, le fichier target.txt.

Notez que sur les listes de fichiers et de répertoires, les liens symboliques eux-mêmes indiquent toujours les permissions rwx pour l’utilisateur, le groupe et les autres, mais en pratique, leurs permissions d’accès sont les mêmes que celles de la cible.

Déplacement et Suppression des Liens Symboliques

Comme les liens solides, les liens symboliques peuvent être supprimés à l’aide de rm et déplacés ou renommés à l’aide de mv. Cependant, il faut faire particulièrement attention lors de leur création, pour éviter de “casser” le lien s’il est déplacé de son emplacement d’origine.

Lorsque vous créez des liens symboliques, vous devez être conscient que, à moins qu’un chemin ne soit entièrement spécifié, l’emplacement de la cible est interprété comme étant relatif à l’emplacement du lien. Cela peut créer des problèmes si le lien, ou le fichier vers lequel il pointe, est déplacé.

C’est plus facile à comprendre avec un exemple. Supposons que nous ayons un fichier nommé original.txt dans le répertoire courant, et que nous voulions créer un lien symbolique vers celui-ci appelé softlink. Nous pourrions utiliser :

$ ln -s original.txt softlink

Et apparemment, tout irait bien. Vérifions avec ls :

$ ls -lh
total 112K
-r--r--r-- 1 carol carol 110K Jun  7 10:13 original.txt
lrwxrwxrwx 1 carol carol   12 Jun  7 19:23 softlink -> original.txt

Voyez comment le lien est construit : le softlink pointe vers (→) original.txt. Cependant, voyons ce qui se passe si nous déplaçons le lien vers le répertoire parent et essayons d’afficher son contenu en utilisant la commande less :

$ mv softlink ../
$ less ../softlink
../softlink: No such file or directory

Comme le chemin d’accès au fichier original.txt n’a pas été spécifié, le système suppose qu’il se trouve dans le même répertoire que le lien. Lorsque cela n’est plus vrai, le lien cesse de fonctionner.

La façon d’éviter cela est de toujours spécifier le chemin complet vers la cible lors de la création du lien :

$ ln -s /home/carol/Documents/original.txt softlink

Ainsi, quel que soit l’endroit où vous déplacez le lien, il fonctionnera toujours, car il indique l’emplacement absolu de la cible. Vérifiez avec ls :

$ ls -lh
total 112K
lrwxrwxrwx 1 carol carol   40 Jun  7 19:34 softlink -> /home/carol/Documents/original.txt

Exercices Guidés

  1. Imaginez qu’un programme ait besoin de créer un fichier temporaire à usage unique qui ne sera plus jamais nécessaire après la fermeture du programme. Quel serait le répertoire correct dans lequel créer ce fichier ?

  2. Quel est le répertoire temporaire qui doit être effacé pendant le processus de démarrage ?

  3. Quel est le paramètre de chmod en mode symbolique pour activer le sticky bit sur un répertoire ?

  4. Imaginez qu’il y ait un fichier nommé document.txt dans le répertoire /home/carol/Documents. Quelle est la commande pour créer un lien symbolique vers ce fichier nommé text.txt dans le répertoire courant ?

  5. Expliquez la différence entre un lien solide vers un fichier et une copie de ce fichier.

Exercices d’Exploration

  1. Imaginez que dans un répertoire, vous créez un fichier appelé recipes.txt. Dans ce répertoire, vous créez également un lien solide vers ce fichier, appelé receitas.txt, et un lien symbolique (ou souple) vers ce fichier appelé rezepte.txt.

    $ touch recipes.txt
    $ ln recipes.txt receitas.txt
    $ ln -s recipes.txt rezepte.txt

    Le contenu du répertoire doit apparaître ainsi :

    $ ls -lhi
    total 160K
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 receitas.txt
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 recipes.txt
    5388837 lrwxrwxrwx 1 carol carol  12 jun 24 10:12 rezepte.txt -> receitas.txt

    N’oubliez pas que, en tant que lien solide, receitas.txt pointe vers le même inode que recipes.txt. Qu’arriverait-il au lien symbolique rezepte.txt si le nom receitas.txt était supprimé ? Pourquoi ?

  2. Imaginez une clé USB branchée sur votre système, et montée sur /media/votreutilisateur/FlashA. Vous voulez créer dans votre répertoire personnel un lien appelé schematics.pdf, pointant sur le fichier esquema.pdf dans le répertoire racine de la clé USB. Alors, vous tapez la commande :

    $ ln /media/youruser/FlashA/esquema.pdf ~/schematics.pdf

    Que se passerait-il ? Pourquoi ?

  3. Considérons le résultat suivant de ls -lah :

    $ ls -lah
    total 3,1M
    drwxr-xr-x 2 carol carol 4,0K jun 17 17:27 .
    drwxr-xr-x 5 carol carol 4,0K jun 17 17:29 ..
    -rw-rw-r-- 1 carol carol 2,8M jun 17 15:45 compressed.zip
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 document.txt
    -rw-rw-r-- 1 carol carol 216K jun 17 17:25 image.png
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 text.txt
    • Combien de liens pointent vers le fichier document.txt ?

    • S’agit-il de liens symboliques ou solides ?

    • Quel paramètre devez-vous passer à ls pour voir quel inode occupe chaque fichier ?

  4. Imaginez que vous ayez dans votre répertoire ~/Documents un fichier nommé clients.txt contenant quelques noms de clients, et un répertoire nommé somedir. À l’intérieur de celui-ci, il y a un autre fichier également nommé clients.txt avec des noms différents. Pour reproduire cette structure, utilisez les commandes suivantes.

    $ cd ~/Documents
    $ echo "John, Michael, Bob" > clients.txt
    $ mkdir somedir
    $ echo "Bill, Luke, Karl" > somedir/clients.txt

    Vous créez ensuite un lien dans somedir nommé partners.txt qui pointe vers ce fichier, avec les commandes :

    $ cd somedir/
    $ ln -s clients.txt partners.txt

    La structure du répertoire est donc la suivante :

    Documents
    |-- clients.txt
    `-- somedir
        |-- clients.txt
        `-- partners.txt -> clients.txt

    Maintenant, vous déplacez partners.txt de somedir vers ~/Documents, et vous en listez le contenu.

    $ cd ~/Documents/
    $ mv somedir/partners.txt .
    $ less partners.txt

    Le lien fonctionnera-t-il encore ? Si oui, quel fichier sera listé ? Pourquoi ?

  5. Examinez les fichiers suivants :

    -rw-r--r-- 1 carol carol 19 Jun 24 11:12 clients.txt
    lrwxrwxrwx 1 carol carol 11 Jun 24 11:13 partners.txt -> clients.txt

    Quelles sont les permissions d’accès de partners.txt ? Pourquoi ?

Résumé

Dans cette leçon, vous avez appris :

  • Où sont stockés les fichiers temporaires.

  • Quelle est la permission spéciale qui leur est appliquée.

  • Ce que sont les liens.

  • La différence entre les liens symboliques et les liens solides.

  • Comment créer des liens.

  • Comment les déplacer, les renommer ou les supprimer.

Les commandes suivantes ont été abordées dans cette leçon :

  • ln

  • Le paramètre -i de ls

Réponses aux Exercices Guidés

  1. Imaginez qu’un programme ait besoin de créer un fichier temporaire à usage unique qui ne sera plus jamais nécessaire après la fermeture du programme. Quel serait le répertoire correct dans lequel créer ce fichier ?

    Comme nous ne nous soucions pas du fichier une fois que le programme a fini de s’exécuter, le répertoire correct est /tmp.

  2. Quel est le répertoire temporaire qui doit être effacé pendant le processus de démarrage ?

    Ce répertoire est /run ou, sur certains systèmes, /var/run.

  3. Quel est le paramètre de chmod en mode symbolique pour activer le sticky bit sur un répertoire ?

    Le symbole du stickit bit en mode symbolique est t. Comme nous voulons activer (ajouter) cette permission au répertoire, le paramètre doit être +t.

  4. Imaginez qu’il y ait un fichier nommé document.txt dans le répertoire /home/carol/Documents. Quelle est la commande pour créer un lien symbolique vers ce fichier nommé text.txt dans le répertoire courant ?

    ln -s est la commande pour créer un lien symbolique. Puisque vous devez spécifier le chemin complet du fichier auquel vous vous connectez, la commande est :

    $ ln -s /home/carol/Documents/document.txt text.txt
  5. Expliquez la différence entre un lien solide vers un fichier et une copie de ce fichier.

    Un lien solide n’est qu’un autre nom pour un fichier. Même s’il ressemble à une copie du fichier original, à toutes fins utiles, le lien et l’original sont les mêmes, car ils pointent vers les mêmes données sur le disque. Les modifications apportées au contenu du lien seront répercutées sur l’original, et vice-versa. Une copie est une entité complètement indépendante, occupant une place différente sur le disque. Les modifications apportées à la copie ne seront pas répercutées sur l’original, et vice-versa.

Réponses aux Exercices d’Exploration

  1. Imaginez que dans un répertoire, vous créez un fichier appelé recipes.txt. Dans ce répertoire, vous créez également un lien solide vers ce fichier, appelé receitas.txt, et un lien symbolique (ou souple) vers ce fichier appelé rezepte.txt.

    $ touch recipes.txt
    $ ln recipes.txt receitas.txt
    $ ln -s recipes.txt rezepte.txt

    Le contenu du répertoire devrait être ainsi :

    $ ls -lhi
    total 160K
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 receitas.txt
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 recipes.txt
    5388837 lrwxrwxrwx 1 carol carol  12 jun 24 10:12 rezepte.txt -> recipes.txt

    N’oubliez pas que, en tant que lien solide, receitas.txt pointe vers le même inode que recipes.txt. Qu’arriverait-il au lien symbolique rezepte.txt si le nom receitas.txt était supprimé ? Pourquoi ?

    Le lien symbolique rezepte.txt cesserait de fonctionner. En effet, les liens symboliques pointent vers des noms, et non des inodes, et le nom receitas.txt n’existe plus, même si les données sont toujours sur le disque sous le nom recipes.txt.

  2. Imaginez une clé USB branchée sur votre système, et montée sur /media/votreutilisateur/FlashA. Vous voulez créer dans votre répertoire personnel un lien appelé schematics.pdf, pointant sur le fichier esquema.pdf dans le répertoire racine de la clé USB. Alors, vous tapez la commande :

    $ ln /media/youruser/FlashA/esquema.pdf ~/schematics.pdf

    Que se passerait-il ? Pourquoi ?

    La commande échouerait. Le message d’erreur serait "Invalid cross-device link", et il en indique clairement la raison : les liens solides ne peuvent pas pointer vers une cible dans une partition ou un périphérique différent. La seule façon de créer un lien de ce type est d’utiliser un lien symbolique ou souple, en ajoutant le paramètre -s à ln.

  3. Considérons le résultat suivant de ls -lah :

    $ ls -lah
    total 3,1M
    drwxr-xr-x 2 carol carol 4,0K jun 17 17:27 .
    drwxr-xr-x 5 carol carol 4,0K jun 17 17:29 ..
    -rw-rw-r-- 1 carol carol 2,8M jun 17 15:45 compressed.zip
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 document.txt
    -rw-rw-r-- 1 carol carol 216K jun 17 17:25 image.png
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 text.txt
    • Combien de liens pointent vers le fichier document.txt ?

      Chaque fichier commence avec un nombre de liens égal à 1. Comme le nombre de liens pour le fichier est de 4, il y a trois liens qui pointent vers ce fichier.

    • S’agit-il de liens symboliques ou solides ?

      Il s’agit de liens solides, puisque les liens symboliques n’augmentent pas le nombre de liens d’un fichier.

    • Quel paramètre devez-vous passer à ls pour voir quel inode occupe chaque fichier ?

      Le paramètre est -i. L’inode apparaîtra dans la première colonne de la sortie de ls, comme ci-dessous :

      $ ls -lahi
      total 3,1M
      5388773 drwxr-xr-x 2 rigues rigues 4,0K jun 17 17:27 .
      5245554 drwxr-xr-x 5 rigues rigues 4,0K jun 17 17:29 ..
      5388840 -rw-rw-r-- 1 rigues rigues 2,8M jun 17 15:45 compressed.zip
      5388833 -rw-r--r-- 4 rigues rigues  77K jun 17 17:25 document.txt
      5388837 -rw-rw-r-- 1 rigues rigues 216K jun 17 17:25 image.png
      5388833 -rw-r--r-- 4 rigues rigues  77K jun 17 17:25 text.txt
  4. Imaginez que vous ayez dans votre répertoire ~/Documents un fichier nommé clients.txt contenant quelques noms de clients, et un répertoire nommé somedir. À l’intérieur de celui-ci, il y a un autre fichier également nommé clients.txt avec des noms différents. Pour reproduire cette structure, utilisez les commandes suivantes.

    $ cd ~/Documents
    $ echo "John, Michael, Bob" > clients.txt
    $ mkdir somedir
    $ echo "Bill, Luke, Karl" > somedir/clients.txt

    Vous créez ensuite un lien dans somedir nommé partners.txt qui pointe vers ce fichier, avec les commandes :

    $ cd somedir/
    $ ln -s clients.txt partners.txt

    La structure du répertoire est donc la suivante :

    Documents
    |-- clients.txt
    `-- somedir
        |-- clients.txt
        `-- partners.txt -> clients.txt

    Maintenant, vous déplacez partners.txt de somedir vers ~/Documents, et vous en listez le contenu.

    $ cd ~/Documents/
    $ mv somedir/partners.txt .
    $ less partners.txt

    Le lien fonctionnera-t-il encore ? Si oui, quel fichier sera listé ? Pourquoi ?

    C’est un cas “délicat”, mais le lien fonctionnera, et le fichier listé sera celui de ~/Documents, contenant les noms John, Michael, Bob.

    N’oubliez pas que, puisque vous n’avez pas spécifié le chemin complet vers le fichier clients.txt cible lors de la création du lien souple partners.txt, l’emplacement cible sera interprété comme étant relatif à l’emplacement du lien, qui dans ce cas est le répertoire courant.

    Lorsque le lien a été déplacé de ~/Documents/somedir vers ~/Documents, il devrait cesser de fonctionner, puisque la cible n’est plus dans le même répertoire que le lien. Cependant, il se trouve qu’il y a un fichier nommé clients.txt dans ~/Documents, donc le lien pointera vers ce fichier, au lieu de la cible originale dans ~/somedir.

    Pour éviter cela, il faut toujours spécifier le chemin complet vers la cible lors de la création d’un lien symbolique.

  5. Examinez les fichiers suivants :

    -rw-r--r-- 1 rigues rigues 19 Jun 24 11:12 clients.txt
    lrwxrwxrwx 1 rigues rigues 11 Jun 24 11:13 partners.txt -> clients.txt

    Quelles sont les permissions d’accès de partners.txt ? Pourquoi ?

    Les permissions d’accès pour partners.txt sont rw-r-r--, car les liens héritent toujours des mêmes permissions d’accès que la cible.

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

LPI est une organisation à but non lucratif.

© 2023 Le Linux Professional Institute (LPI) est la référence mondiale en matière de certification et un organisme de soutien aux professionnels de l'Open Source. Avec plus de 200 000 certifiés à son actif, c'est le principal organisme de certification indépendant pour Linux et l'Open Source au monde. Le LPI a certifié des professionnels dans plus de 180 pays, organise des examens en plusieurs langues et compte des centaines de partenaires pour la formation.

Notre objectif est la création d'opportunités économiques et créatives pour tous en rendant accessible au monde entier la certification des connaissances et des compétences en matière d'Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contactez-nous
  • Politique en matière de confidentialité et de cookies

Vous avez repéré une erreur ou vous voulez aider à améliorer cette page ? Faites-nous savoir.

© 1999–2023 The Linux Professional Institute Inc. Tous droits réservés.