Comment vérifier si un fichier est lisible sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un fichier est lisible sous Linux en utilisant divers outils en ligne de commande. Vous commencerez par utiliser la commande fondamentale test -r pour vérifier par programmation les autorisations de lecture, en comprenant son utilisation dans les expressions conditionnelles.

Ensuite, vous explorerez la commande ls -l pour inspecter visuellement les autorisations de fichier, en acquérant une compréhension de la chaîne de permissions et de sa signification. Enfin, vous plongerez dans la commande stat pour obtenir des informations détaillées sur un fichier, y compris ses autorisations d'accès et d'autres métadonnées. En effectuant ces étapes, vous acquerrez des compétences pratiques pour déterminer la lisibilité des fichiers dans un environnement Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/InputandOutputRedirectionGroup -.-> linux/redirect("I/O Redirecting") subgraph Lab Skills linux/echo -.-> lab-558713{{"Comment vérifier si un fichier est lisible sous Linux"}} linux/test -.-> lab-558713{{"Comment vérifier si un fichier est lisible sous Linux"}} linux/ls -.-> lab-558713{{"Comment vérifier si un fichier est lisible sous Linux"}} linux/pwd -.-> lab-558713{{"Comment vérifier si un fichier est lisible sous Linux"}} linux/redirect -.-> lab-558713{{"Comment vérifier si un fichier est lisible sous Linux"}} end

Tester la lisibilité avec test -r

Dans cette étape, vous apprendrez à vérifier si vous avez les autorisations de lecture pour un fichier en utilisant la commande test avec l'option -r.

La commande test est une commande intégrée au shell qui évalue les expressions conditionnelles. Elle est souvent utilisée dans les scripts shell pour prendre des décisions. L'option -r vérifie spécifiquement si un fichier existe et est lisible par l'utilisateur actuel.

Créons un fichier simple pour tester cela. Nous utiliserons la commande echo pour insérer du texte dans un fichier nommé my_file.txt dans votre répertoire ~/project.

Tapez la commande suivante et appuyez sur Entrée :

echo "This is a test file." > ~/project/my_file.txt

Cette commande crée le fichier ~/project/my_file.txt et écrit la chaîne de caractères "This is a test file." dedans. Le symbole > redirige la sortie de la commande echo vers le fichier spécifié.

Maintenant, utilisons test -r pour vérifier si vous pouvez lire ce fichier. La commande test elle-même ne produit pas de sortie si la condition est vraie. Nous l'associons généralement à d'autres commandes comme echo pour voir le résultat.

Tapez la commande suivante et appuyez sur Entrée :

test -r ~/project/my_file.txt && echo "File is readable."

L'opérateur && signifie "exécutez la commande à droite seulement si la commande à gauche réussit (renvoie un code de sortie égal à zéro)". Si test -r ~/project/my_file.txt est vrai (ce qui signifie que le fichier est lisible), la commande echo sera exécutée.

Vous devriez voir la sortie suivante :

File is readable.

Maintenant, essayons de vérifier un fichier qui n'existe pas.

Tapez la commande suivante et appuyez sur Entrée :

test -r ~/project/non_existent_file.txt && echo "This won't be printed."

Étant donné que ~/project/non_existent_file.txt n'existe pas, test -r renverra un code de sortie non nul (échec), et la commande echo ne sera pas exécutée. Vous ne devriez voir aucune sortie pour cette commande.

La commande test est un outil fondamental pour la programmation de scripts sous Linux. Comprendre comment utiliser ses diverses options, comme -r, est essentiel pour écrire des scripts robustes qui peuvent vérifier les autorisations et l'existence des fichiers avant d'effectuer des opérations.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier les autorisations avec ls -l

Dans l'étape précédente, vous avez utilisé test -r pour vérifier si un fichier est lisible. Maintenant, utilisons la commande ls avec l'option -l pour voir les autorisations détaillées d'un fichier.

La commande ls liste le contenu d'un répertoire. L'option -l fournit un format de "liste longue", qui inclut des informations sur le type de fichier, les autorisations, le nombre de liens physiques (hard links), le propriétaire, le groupe, la taille, la date de modification et le nom du fichier.

Regardons les autorisations du fichier my_file.txt que vous avez créé dans l'étape précédente. Assurez-vous d'être dans le répertoire ~/project. Vous pouvez confirmer votre répertoire actuel en utilisant la commande pwd :

pwd

Vous devriez voir /home/labex/project.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

ls -l my_file.txt

Vous verrez une sortie similaire à celle-ci :

-rw-rw-r-- 1 labex labex XX Month XX XX:XX my_file.txt

Décortiquons la première partie de la sortie, qui représente le type de fichier et les autorisations :

-rw-rw-r--

Cette chaîne de dix caractères vous apprend beaucoup sur les autorisations du fichier.

  1. Le premier caractère indique le type de fichier :

    • - signifie qu'il s'agit d'un fichier ordinaire.
    • d signifie qu'il s'agit d'un répertoire.
    • l signifie qu'il s'agit d'un lien symbolique.
    • (Il existe d'autres types, mais ceux-ci sont les plus courants).
  2. Les neuf caractères suivants sont groupés en trois ensembles de trois :

    • Le premier ensemble (rw-) montre les autorisations pour le propriétaire du fichier.
    • Le deuxième ensemble (rw-) montre les autorisations pour le groupe auquel le fichier appartient.
    • Le troisième ensemble (r--) montre les autorisations pour les autres (tout le monde d'autre).

Dans chaque ensemble de trois caractères :

  • Le premier caractère indique l'autorisation de lecture (r). Si un tiret (-) est présent, l'autorisation de lecture est refusée.
  • Le deuxième caractère indique l'autorisation d'écriture (w). Si un tiret (-) est présent, l'autorisation d'écriture est refusée.
  • Le troisième caractère indique l'autorisation d'exécution (x). Si un tiret (-) est présent, l'autorisation d'exécution est refusée.

Donc, pour my_file.txt avec les autorisations -rw-rw-r-- :

  • Le propriétaire (labex) a les autorisations de lecture (r) et d'écriture (w), mais pas d'exécution (-).
  • Le groupe (labex) a les autorisations de lecture (r) et d'écriture (w), mais pas d'exécution (-).
  • Les autres ont l'autorisation de lecture (r), mais pas d'écriture (-) ni d'exécution (-).

Cette sortie confirme que le propriétaire (labex) a l'autorisation de lecture, c'est pourquoi test -r a fonctionné dans l'étape précédente.

Comprendre la sortie de ls -l est fondamental pour gérer les fichiers et les répertoires sous Linux et contrôler qui peut y accéder.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter l'accès aux fichiers avec stat

Dans cette étape, vous utiliserez la commande stat pour obtenir des informations détaillées sur un fichier, y compris ses horodatages d'accès, de modification et de changement, ainsi que ses autorisations sous forme symbolique et numérique.

Alors que ls -l vous donne une bonne vue d'ensemble des autorisations, stat offre un examen plus approfondi des métadonnées du fichier.

Utilisons stat sur le fichier my_file.txt que vous avez créé précédemment dans le répertoire ~/project.

Tapez la commande suivante et appuyez sur Entrée :

stat ~/project/my_file.txt

Vous verrez une sortie similaire à celle-ci :

  File: /home/labex/project/my_file.txt
  Size: XX          Blocks: X          IO Block: XXXX   regular file
Device: XXh/XXd Inode: XXXXXXXX    Links: X
Access: (0664/-rw-rw-r--)  Uid: (  XXXX/   labex)   Gid: (  XXXX/   labex)
Access: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Modify: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Change: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
 Birth: -

Regardons quelques lignes clés de la sortie :

  • File : Le nom du fichier.
  • Size : La taille du fichier en octets.
  • Access: (0664/-rw-rw-r--) : Cette ligne montre les autorisations sous deux formats :
    • 0664 : Il s'agit de la représentation numérique (octale) des autorisations. Chaque chiffre représente les autorisations pour le propriétaire, le groupe et les autres, respectivement.
      • 6 pour le propriétaire : rwx (lecture = 4, écriture = 2, exécution = 0) -> 4 + 2 + 0 = 6
      • 6 pour le groupe : rwx (lecture = 4, écriture = 2, exécution = 0) -> 4 + 2 + 0 = 6
      • 4 pour les autres : rwx (lecture = 4, écriture = 0, exécution = 0) -> 4 + 0 + 0 = 4
      • Le 0 initial est souvent utilisé pour indiquer la notation octale.
    • -rw-rw-r-- : Il s'agit de la représentation symbolique des autorisations, que vous avez apprise avec ls -l.
  • Uid et Gid : L'identifiant utilisateur (User ID) et l'identifiant de groupe (Group ID) du propriétaire et du groupe du fichier, ainsi que leurs noms.
  • Access, Modify, Change : Ces lignes montrent les horodatages du fichier :
    • Access : La dernière fois que le fichier a été consulté (lu).
    • Modify : La dernière fois que le contenu du fichier a été modifié.
    • Change : La dernière fois que les métadonnées du fichier (comme les autorisations, le propriétaire, le groupe) ont été modifiées.

La commande stat est très utile lorsque vous avez besoin d'informations détaillées sur les propriétés d'un fichier, en particulier pour la programmation de scripts ou la résolution de problèmes d'autorisations.

Vous avez maintenant appris trois façons différentes d'inspecter les autorisations de fichiers et les informations d'accès sous Linux : test -r, ls -l et stat. Ce sont des outils essentiels pour travailler avec les fichiers en ligne de commande.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si un fichier est lisible sous Linux en utilisant la commande test avec l'option -r. Vous avez pratiqué la création d'un fichier, puis l'utilisation de test -r en conjonction avec l'opérateur && pour afficher conditionnellement un message en fonction de la lisibilité du fichier. Vous avez également observé que test -r retourne false pour les fichiers non existants, empêchant l'exécution des commandes suivantes. Cette étape a démontré une méthode fondamentale pour vérifier les autorisations de fichiers de manière programmée dans les scripts shell.