Contactez-nous

Visualiser les permissions et le propriétaire avec `ls -l`

Apprenez à lire et interpréter la sortie de `ls -l` pour comprendre les permissions de fichiers (rwx), le propriétaire et le groupe sous Linux.

Décrypter les informations d'accès : la sortie de `ls -l`

Maintenant que nous avons une compréhension théorique des types de droits (lecture, écriture, exécution) et des catégories d'utilisateurs (propriétaire, groupe, autres), il est temps de voir comment ces informations sont concrètement affichées dans le terminal. L'outil principal pour visualiser les permissions, ainsi que le propriétaire et le groupe d'un fichier ou d'un répertoire, est la commande ls avec son option -l (format long).

La sortie de ls -l peut sembler cryptique au premier abord, mais chaque partie de l'information affichée a une signification précise. Savoir lire et interpréter cette sortie est une compétence fondamentale pour diagnostiquer des problèmes d'accès, vérifier la sécurité de vos fichiers, et comprendre comment les permissions sont configurées sur votre système.

Ce sous-chapitre va décortiquer en détail la première colonne de la sortie de ls -l, qui contient le type de fichier et les neuf bits de permission, ainsi que les colonnes indiquant le propriétaire et le groupe.

Anatomie de la sortie de `ls -l` : la chaîne de permissions

Lorsque vous exécutez ls -l, vous obtenez une liste détaillée. Prenons un exemple de ligne :

-rw-r--r-- 1 utilisateur mongroupe 1024 mai 25 10:30 monfichier.txt
drwxr-xr-x 2 utilisateur mongroupe 4096 mai 25 10:35 MonDossier

Concentrons-nous sur la première chaîne de caractères (par exemple, -rw-r--r-- ou drwxr-xr-x). Cette chaîne de 10 caractères est cruciale et se décompose comme suit :

Premier caractère : Type de fichier

Le tout premier caractère indique le type de fichier. Les plus courants sont :

  • - : Fichier ordinaire (un fichier texte, une image, un binaire exécutable, etc.).
  • d : Répertoire (Directory).
  • l : Lien symbolique (Symbolic Link). C'est un pointeur vers un autre fichier ou répertoire.
  • c : Fichier spécial de type caractère (Character device, par exemple un terminal /dev/tty).
  • b : Fichier spécial de type bloc (Block device, par exemple un disque dur /dev/sda).
  • p : Tube nommé (Named Pipe ou FIFO).
  • s : Socket.
Les neuf caractères suivants : Les permissions rwx

Les neuf caractères qui suivent le type de fichier représentent les permissions de lecture (r), écriture (w), et exécution (x) pour les trois catégories d'utilisateurs, toujours dans cet ordre : propriétaire, groupe, autres.

Chaque bloc de trois caractères correspond à une catégorie :

  • Caractères 2, 3, 4 : Permissions du propriétaire (User/Owner)
  • Caractères 5, 6, 7 : Permissions du groupe (Group)
  • Caractères 8, 9, 10 : Permissions des autres (Others)

Dans chaque triplet, la signification est :

  • Le premier caractère est r si la lecture est permise, - sinon.
  • Le deuxième caractère est w si l'écriture est permise, - sinon.
  • Le troisième caractère est x si l'exécution est permise, - sinon.

Reprenons nos exemples :

  • Pour -rw-r--r-- (monfichier.txt) :
    • - : C'est un fichier ordinaire.
    • rw- : Le propriétaire peut lire (r) et écrire (w), mais pas exécuter (-).
    • r-- : Le groupe peut seulement lire (r).
    • r-- : Les autres peuvent seulement lire (r).
  • Pour drwxr-xr-x (MonDossier) :
    • d : C'est un répertoire.
    • rwx : Le propriétaire peut lire (r), écrire (w), et traverser/exécuter (x) le répertoire.
    • r-x : Le groupe peut lire (r) et traverser/exécuter (x), mais pas écrire.
    • r-x : Les autres peuvent lire (r) et traverser/exécuter (x), mais pas écrire.

Il existe aussi des bits de permission spéciaux (SetUID, SetGID, Sticky Bit) qui peuvent apparaître à la place des x (ou -) et qui sont souvent représentés par s, S, t, ou T. Ce sont des concepts plus avancés que nous n'aborderons pas en détail ici, mais il est bon de savoir qu'ils existent.

Identifier le propriétaire et le groupe

En plus de la chaîne de permissions, la sortie de ls -l fournit d'autres informations cruciales :

-rw-r--r-- 1 utilisateur mongroupe 1024 mai 25 10:30 monfichier.txt
  • Nombre de liens physiques : Le chiffre 1 (ou un autre nombre pour les répertoires ou les fichiers avec plusieurs liens durs) après la chaîne de permissions indique le nombre de liens physiques pointant vers ce fichier/inode. Pour un répertoire, il indique le nombre de sous-répertoires (plus . et ..).
  • Propriétaire (Owner) : La troisième colonne, ici utilisateur, est le nom de l'utilisateur propriétaire du fichier ou du répertoire.
  • Groupe propriétaire (Group) : La quatrième colonne, ici mongroupe, est le nom du groupe propriétaire du fichier ou du répertoire.

Les autres colonnes sont la taille du fichier (ici 1024 octets), la date et l'heure de dernière modification (mai 25 10:30), et enfin le nom du fichier ou du répertoire (monfichier.txt). Si le nom du fichier est un lien symbolique, la sortie de ls -l montrera également la cible du lien, par exemple :

lrwxrwxrwx 1 user group 12 mai 25 11:00 monlien -> /chemin/vers/cible

Ici, l indique un lien symbolique, et -> /chemin/vers/cible montre où pointe le lien. Notez que les permissions d'un lien symbolique sont souvent affichées comme rwxrwxrwx, mais ce sont les permissions du fichier cible qui importent réellement pour l'accès.

Savoir interpréter chaque partie de cette sortie de ls -l est essentiel. Cela vous permet de comprendre immédiatement qui a quels droits sur un fichier ou un répertoire, et qui en est le propriétaire. C'est la base pour ensuite pouvoir modifier ces permissions et propriétés si nécessaire, ce que nous verrons dans les prochains sous-chapitres.