GNU/Linux >> Tutoriels Linux >  >> Linux

Créer des liens matériels et logiciels - Préparation à l'examen RHCSA

Dans cette partie de la préparation à l'examen RHCSA, nous porterons notre attention sur les liens. Il existe deux types de liens, les liens durs et les liens souples. Dans cet article, nous parlerons de la façon de créer et de supprimer des liens et discuterons également de quelques informations de base derrière les liens physiques et les liens symboliques.

Dans ce didacticiel, vous apprendrez :

  • Qu'est-ce qu'un lien symbolique (soft) ?
  • Qu'est-ce qu'un lien physique ?
  • Comment créer un lien symbolique
  • Comment créer un lien physique
  • Comment supprimer le lien

Page de manuel du ln commande

Configuration logicielle requise et conventions utilisées

Configuration logicielle requise et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version du logiciel utilisée
Système Red Hat Enterprise Linux 8 ou toute autre distribution GNU/Linux
Logiciel N/A
Autre Accès privilégié à votre système Linux en tant que root ou via le sudo commande.
Conventions # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande
$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié

Que sont les liens sur les systèmes GNU/Linux

Chaque fichier contient une information sur sa date de création, sa modification, son accès ainsi que la propriété du fichier et ses autorisations stockées dans un soi-disant inode . En plus des métadonnées stockées déjà mentionnées, l'inode stocke également une information sur un bloc de données où le contenu réel du fichier est stocké sur le système de fichiers.

Par conséquent, la fonction principale de l'inode est de décrire un objet du système de fichiers tel qu'un fichier ou un répertoire. Afin d'accéder à l'objet du système de fichiers associé à un inode spécifique nous devons fournir à l'utilisateur un lien physique qui est le nom réel du fichier ou du répertoire.

Ceci explique le premier type de liens qui sont des liens physiques . Le deuxième type de liens sur le système d'exploitation GNU/Linux sont les liens symboliques alias liens souples. La différence entre les liens physiques et symboliques est que les liens symboliques ne pointent que vers des liens physiques, c'est-à-dire qu'ils pointent vers les noms de fichiers ou de répertoires existants. En résumé, les liens permettent à l'utilisateur d'accéder à des fichiers ou des répertoires via plusieurs noms.

Liens physiques

Depuis les liens physiques sont associés aux inodes qui sont à leur tour une fonctionnalité du système de fichiers, les liens physiques ne peuvent pas traverser les systèmes de fichiers et ne sont donc valides qu'au sein du même système de fichiers. De plus, il n'est pas possible de créer des liens physiques sur les annuaires. Toute tentative de création d'un lien physique à partir d'un répertoire entraînera un hard link not allowed for directory Message d'erreur.

Créons des liens physiques. Dans cet exemple, nous allons d'abord créer un fichier arbitraire appelé sandbox contenant un texte linuxconfig.org . Une fois prêt, nous créerons plusieurs liens physiques vers ce fichier pointant depuis différents emplacements.

  1. Créez un fichier appelé sandbox contenant un texte RHCSA dans un répertoire personnel d'utilisateur ~/ .
    $ echo "RHCSA" > ~/sandbox
    

    Vérifiez le contenu du fichier en utilisant le cat commande :

    $ cat ~/sandbox
    RHCSA
    
  2. Toujours situé dans le répertoire d'accueil d'un utilisateur, créez un lien physique vers le sandbox fichier de /tmp/ répertoire appelé hardlink1 .
    $ ln sandbox /tmp/hardlink1
    

    Vérifiez maintenant le contenu du lien dur nouvellement créé /tmp/hardlink1 . Le contenu du /tmp/hardlink1 et le sandbox d'origine le fichier doit être le même :

    $ cat /tmp/hardlink1
    RHCSA
    
  3. Vérifiez les informations de lien associées aux deux noms de fichiers sandbox et /tmp/hardlink1 .
    $ ls -l /tmp/hardlink1
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    $ ls -l ~/sandbox
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /home/linuxconfig/sandbox
    

    Notez le numéro associé 2 comme le montre la sortie ci-dessus. Ce nombre indique le nombre de liens physiques associés à un inode spécifique.

    REMARQUE
    À ce stade, il est important de comprendre qu'il n'y a pas de réelle différence entre le sandbox d'origine et le nouveau /tmp/hardlink1 dossier. Ils pointent tous les deux vers le même inode en utilisant des noms de fichiers différents.
  4. Supprimer le lien physique en utilisant unlink ou rm commande.
  5. $ unlink sandbox 
    $ ls -l /tmp/hardlink1 
    -rw-rw-r--. 1 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    

    Dans ce cas, les deux rm ou unlink Les commandes supprimeront un lien physique mais pas les données et l'inode associés. Depuis le sandbox le lien dur a été supprimé il n'y a que 1 lien dur laissé associé à l'inode d'origine. Ensuite, nous supprimerons le dernier lien physique associé à ce fichier :

    $ rm /tmp/hardlink1
    

    À ce stade, le lien vers l'inode pointant vers le contenu de notre fichier d'origine est perdu, nous considérons donc ce fichier comme supprimé. S'il n'y a pas de liens physiques pointant vers un inode, le système de fichiers peut maintenant remplacer l'emplacement de cet inode par une nouvelle donnée.

LE SAVIEZ-VOUS ?
Vous pouvez supprimer n'importe quel fichier (à condition que vous disposiez des autorisations appropriées) à l'aide de la commande unlink ? Essayez-le maintenant :

$ touch file
$ unlink file

Si vous avez compris les commandes ci-dessus, alors vous maîtrisez les liens physiques GNU/Linux comme expliqué dans ce tutoriel.

Liens symboliques

En plus des liens physiques, il existe également un autre type de liens disponibles sur le système d'exploitation GNU/Linux. Liens symboliques peut traverser des systèmes de fichiers, et il est également possible de créer un lien symbolique d'un répertoire. Cependant, des liens symboliques au lieu du véritable inode , uniquement un lien vers un lien physique existant (nom de fichier ou de répertoire). Pour cette raison, si le lien réel vers lequel pointe le lien symbolique est supprimé, le lien symbolique est rompu.

  1. Commençons par créer des objets bac à sable avec lesquels jouer. Dans ce cas, nous allons créer un répertoire appelé mydir et dans ce répertoire, nous allons créer un fichier appelé myfile .
    $ mkdir mydir
    $ touch mydir/myfile
    
  2. Ensuite, nous allons créer un nouveau lien symbolique du répertoire existant monrépertoire en utilisant le ln commande avec une combinaison de -s option.
    $ ln -s ~/mydir /tmp/symdir
    

    Maintenant, nous avons créé un lien symbolique appelé symdir situé dans le /tmp annuaire.

    $ cd /tmp/
    $ ls -l symdir
    lrwxrwxrwx. 1 linuxconfig linuxconfig 23 Jul 25 14:05 symdir -> /home/linuxconfig/mydir
    

    Notez le premier caractère de la sortie ci-dessus. Dans ce cas le caractère l indique qu'il s'agit d'un lien symbolique.

    REMARQUE
    Lorsque vous créez un lien symbolique, gardez à l'esprit que le ln La commande stocke le chemin réel fourni sous forme de chaîne. Si ce n'est pas dans le même répertoire, dans de nombreux cas, vous devez fournir le chemin complet de la commande pour que le lien symbolique fonctionne

    Le nouveau symdir doit contenir un fichier précédemment créé myfile :

    $ cd symdir
    $ ls
    myfile
    $pwd 
    /tmp/symdir
    

Exercices

  1. Jouez avec les liens symboliques. Créez un lien symbolique vers un fichier après avoir supprimé le fichier d'origine et voyez ce qui s'est passé avec votre lien symbolique.
  2. Que se passe-t-il lorsque vous exécutez ls ? commande avec un seul argument. Par exemple, exécutez la commande suivante ln -s /etc/services . Que s'est-il passé ?
  3. Déterminez si vous devez être propriétaire du fichier afin de créer un lien symbolique vers celui-ci. La même règle s'applique-t-elle aux liens physiques ?

Linux
  1. Comment créer des liens matériels et symboliques sous Linux

  2. Liens physiques et liens souples sous Linux expliqués

  3. RHEL 7 – RHCSA Notes :Créez des liens matériels et logiciels.

  4. Qu'est-ce que les liens souples et les liens durs dans le système de fichiers Linux

  5. Différence entre les liens symboliques et les liens physiques sous Linux

Objectifs d'étude pour l'examen RHCSA et le guide de préparation

Créer et configurer des répertoires setgid pour la collaboration – Préparation des objectifs RHCSA

Comment créer des liens matériels et logiciels (lien symbolique) sur les systèmes Linux

Expliquer Soft Link et Hard Link sous Linux avec des exemples

La commande ln sous Linux :créer des liens logiciels et matériels

Liens matériels et liens logiciels sous Linux :tout ce que vous devez savoir