Comment vérifier si un fichier a des autorisations spécifiques 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, vous apprendrez à vérifier les autorisations de fichiers sous Linux. Comprendre les autorisations de fichiers est essentiel pour gérer l'accès aux fichiers et la sécurité. Vous explorerez différentes méthodes pour inspecter les autorisations, en commençant par la commande de base ls -l pour afficher les autorisations standard de lecture, d'écriture et d'exécution pour le propriétaire, le groupe et les autres.

En vous appuyant sur les bases, vous approfondirez ensuite l'utilisation de la commande stat --format pour obtenir une vue plus détaillée et personnalisable des informations sur les fichiers, y compris les autorisations dans différents formats. Enfin, vous apprendrez à vérifier les listes de contrôle d'accès (Access Control Lists - ACLs) à l'aide de la commande getfacl, qui offre un moyen plus précis de gérer les autorisations de fichiers au-delà des autorisations standard pour le propriétaire, le groupe et les autres.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") subgraph Lab Skills linux/ls -.-> lab-558710{{"Comment vérifier si un fichier a des autorisations spécifiques sous Linux"}} linux/touch -.-> lab-558710{{"Comment vérifier si un fichier a des autorisations spécifiques sous Linux"}} linux/chmod -.-> lab-558710{{"Comment vérifier si un fichier a des autorisations spécifiques sous Linux"}} linux/pwd -.-> lab-558710{{"Comment vérifier si un fichier a des autorisations spécifiques sous Linux"}} end

Vérifier les autorisations de fichiers avec ls -l

Dans cette étape, vous apprendrez à vérifier les autorisations de fichiers sous Linux en utilisant la commande ls -l. Comprendre les autorisations de fichiers est crucial pour gérer les fichiers et les répertoires de manière sécurisée.

Les autorisations de fichiers déterminent qui peut lire, écrire ou exécuter un fichier ou un répertoire. Sous Linux, les autorisations sont attribuées à trois catégories :

  • Propriétaire : L'utilisateur qui possède le fichier ou le répertoire.
  • Groupe : Un groupe d'utilisateurs qui ont des autorisations spécifiques.
  • Autres : Tous les autres utilisateurs du système.

Créons un fichier simple pour examiner ses autorisations. 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 la sortie suivante :

/home/labex/project

Maintenant, créez un fichier nommé my_file.txt en utilisant la commande touch :

touch my_file.txt

La commande touch crée un fichier vide s'il n'existe pas.

Ensuite, utilisez la commande ls -l pour afficher les détails du fichier, y compris ses autorisations :

ls -l my_file.txt

Vous verrez une sortie similaire à celle-ci :

-rw-rw-r-- 1 labex labex 0 Feb 13 10:00 my_file.txt

Décortiquons la première partie de la sortie : -rw-rw-r--. Cette chaîne représente le type de fichier et les autorisations.

  • Le premier caractère (-) indique le type de fichier. - signifie qu'il s'agit d'un fichier ordinaire. D'autres types courants incluent d pour un répertoire et l pour un lien symbolique.
  • Les neuf caractères suivants sont regroupés en trois ensembles de trois :
    • Le premier ensemble (rw-) montre les autorisations du propriétaire.
    • Le deuxième ensemble (rw-) montre les autorisations du groupe.
    • Le troisième ensemble (r--) montre les autorisations des autres.

Dans chaque ensemble de trois caractères :

  • r signifie autorisation de lecture.
  • w signifie autorisation d'écriture.
  • x signifie autorisation d'exécution.
  • - signifie que l'autorisation n'est pas accordée.

Dans la sortie d'exemple -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 seulement l'autorisation de lecture (r), mais pas d'écriture (-) ni d'exécution (-).

Les nombres et les noms qui suivent les autorisations (1 labex labex 0 Feb 13 10:00) représentent :

  • 1 : Le nombre de liens physiques vers le fichier.
  • labex : Le propriétaire du fichier.
  • labex : Le groupe propriétaire du fichier.
  • 0 : La taille du fichier en octets.
  • Feb 13 10:00 : La date et l'heure de la dernière modification.
  • my_file.txt : Le nom du fichier.

Comprendre la sortie de ls -l est fondamental pour travailler avec les fichiers et les répertoires sous Linux.

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

Inspecter les autorisations avec stat --format

Dans l'étape précédente, vous avez utilisé ls -l pour afficher les autorisations de fichiers. Une autre commande puissante pour obtenir des informations détaillées sur les fichiers et les systèmes de fichiers est stat. Dans cette étape, vous utiliserez stat avec l'option --format pour inspecter spécifiquement les autorisations de fichiers de manière plus structurée.

La commande stat peut afficher diverses informations sur un fichier, telles que la taille, les blocs, l'heure d'accès, l'heure de modification et les autorisations. L'option --format vous permet de spécifier exactement quelles informations vous souhaitez voir en utilisant des séquences de formatage.

Utilisons stat pour examiner les autorisations du fichier my_file.txt que vous avez créé dans l'étape précédente. Assurez-vous d'être toujours dans le répertoire ~/project.

Tapez la commande suivante et appuyez sur Entrée :

stat --format=%A my_file.txt

Vous devriez voir une sortie similaire à celle-ci :

-rw-rw-r--

Cette sortie est la même chaîne d'autorisations que celle que vous avez vue avec ls -l. La séquence de formatage %A indique à stat d'afficher les autorisations du fichier dans un format lisible par l'homme, tout comme ls -l.

Essayons une autre séquence de formatage. La séquence %a affiche les autorisations en notation octale. La notation octale est une représentation numérique des autorisations, où chaque chiffre représente les autorisations pour le propriétaire, le groupe et les autres.

Tapez la commande suivante et appuyez sur Entrée :

stat --format=%a my_file.txt

Vous devriez voir une sortie similaire à celle-ci :

0664

Décortiquons les autorisations octales 0664 :

  • Le premier chiffre (0) est généralement ignoré pour les autorisations de base.
  • Le deuxième chiffre (6) représente les autorisations du propriétaire. En binaire, 6 est 110. Cela correspond à la lecture (1), l'écriture (1) et l'exécution (0). Donc, les autorisations de lecture et d'écriture.
  • Le troisième chiffre (6) représente les autorisations du groupe. Encore une fois, 110 en binaire, ce qui signifie les autorisations de lecture et d'écriture.
  • Le quatrième chiffre (4) représente les autorisations des autres. En binaire, 4 est 100. Cela correspond à la lecture (1), l'écriture (0) et l'exécution (0). Donc, seulement l'autorisation de lecture.

Cela correspond à la sortie -rw-rw-r-- de ls -l. La notation octale est souvent utilisée lorsque vous modifiez les autorisations avec la commande chmod, que vous pourriez apprendre dans un futur laboratoire.

L'utilisation de stat --format vous permet d'extraire des informations spécifiques sur un fichier, ce qui peut être très utile dans les scripts ou pour une analyse détaillée.

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

Vérifier les listes de contrôle d'accès avec getfacl

En plus des autorisations standard Linux (propriétaire, groupe, autres), certains systèmes de fichiers prennent en charge les listes de contrôle d'accès (Access Control Lists - ACLs). Les ACLs offrent un moyen plus granulaire de définir les autorisations pour des utilisateurs ou des groupes spécifiques au-delà des trois catégories de base.

La commande getfacl est utilisée pour afficher les ACLs des fichiers et des répertoires. Dans cette étape, vous utiliserez getfacl pour vérifier si des ACLs sont définies sur le fichier my_file.txt.

Tout d'abord, assurez-vous d'être dans le répertoire ~/project :

pwd

Vous devriez voir /home/labex/project.

Maintenant, exécutez la commande getfacl sur my_file.txt :

getfacl my_file.txt

Vous devriez voir une sortie similaire à celle-ci :

## file: my_file.txt
## owner: labex
## group: labex
user::rw-
group::rw-
other::r--

Décortiquons la sortie :

  • ## file: my_file.txt : Indique le fichier examiné.
  • ## owner: labex : Affiche le propriétaire du fichier.
  • ## group: labex : Affiche le groupe principal du fichier.
  • user::rw- : Cette ligne montre les autorisations pour le propriétaire du fichier. user:: fait référence à l'utilisateur propriétaire, et rw- indique les autorisations de lecture et d'écriture. Cela correspond aux autorisations du propriétaire vues avec ls -l.
  • group::rw- : Cette ligne montre les autorisations pour le groupe propriétaire. group:: fait référence au groupe propriétaire, et rw- indique les autorisations de lecture et d'écriture. Cela correspond aux autorisations du groupe vues avec ls -l.
  • other::r-- : Cette ligne montre les autorisations pour les autres. other:: fait référence à tous les autres utilisateurs, et r-- indique l'autorisation de lecture. Cela correspond aux autorisations des autres vues avec ls -l.

Dans ce cas, la sortie de getfacl reflète simplement les autorisations standard Linux. Si des ACLs spécifiques étaient définies pour d'autres utilisateurs ou groupes, elles apparaîtraient comme des lignes supplémentaires dans la sortie, telles que user:username:permissions ou group:groupname:permissions.

Par exemple, si une ACL était définie pour donner à un utilisateur nommé testuser un accès en lecture seule, la sortie pourrait inclure une ligne comme user:testuser:r--.

Étant donné qu'aucune ACL spécifique n'a été définie sur my_file.txt, getfacl affiche les autorisations par défaut dérivées des bits d'autorisation standard.

L'utilisation de getfacl est essentielle lorsque vous avez besoin de comprendre l'ensemble complet des autorisations appliquées à un fichier ou un répertoire, en particulier dans les environnements où les ACLs sont utilisées.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier les autorisations de fichiers sous Linux en utilisant la commande ls -l. Vous avez créé un fichier d'exemple et interprété la sortie de ls -l, en comprenant le type de fichier et les autorisations de lecture, d'écriture et d'exécution pour le propriétaire, le groupe et les autres.

Vous avez également exploré des méthodes alternatives pour inspecter les autorisations de fichiers. Vous avez utilisé la commande stat --format pour obtenir des détails d'autorisations spécifiques dans un format plus structuré, et la commande getfacl pour vérifier les listes de contrôle d'accès (Access Control Lists - ACLs), qui offrent un contrôle d'autorisations plus granulaire au-delà des autorisations standard pour le propriétaire, le groupe et les autres.