Aller au contenu
Administration Linux medium

Permissions Linux : lire et comprendre les droits

20 min de lecture

La commande ls -l affiche une série de lettres rwx à côté de chaque fichier : ce sont les permissions. Elles déterminent qui peut lire, modifier ou exécuter un fichier. Savoir les lire est indispensable avant de les modifier, c'est l'objet de ce guide.

  • Décoder chaque colonne de ls -l
  • Comprendre r, w, x appliqués à un fichier
  • Comprendre r, w, x appliqués à un dossier
  • Distinguer propriétaire, groupe et autres
  • Connaître le rôle de umask (permissions par défaut)
Fenêtre de terminal
ls -l
Résultat
-rw-r--r-- 1 bob bob 4096 avr 6 10:00 rapport.txt
drwxr-xr-x 2 bob bob 4096 avr 6 10:00 projets
-rwxr-x--- 1 bob dev 8192 avr 6 10:00 script.sh

Chaque ligne se lit de gauche à droite :

PositionExempleSignification
1er caractère- ou dType : - = fichier, d = dossier, l = lien
Caractères 2-4rw-Droits du propriétaire (user)
Caractères 5-7r--Droits du groupe
Caractères 8-10r--Droits des autres (everyone else)
Nombre1Nombre de liens
Nom 1bobPropriétaire du fichier
Nom 2bobGroupe du fichier
Taille4096Taille en octets
Dateavr 6Date de dernière modification
Nomrapport.txtNom du fichier ou dossier
PermissionLettreSignification
ReadrLire le contenu du fichier
WritewModifier le contenu du fichier
ExecutexExécuter le fichier (script, programme)

Un tiret - à la place d'une lettre signifie que la permission est absente.

Exemples concrets :

PermissionsSignification
rw-Lecture et écriture, pas d'exécution
r--Lecture seule
rwxTous les droits
---Aucun droit

Les mêmes lettres ont un sens différent pour les dossiers :

PermissionLettreSignification sur un dossier
ReadrLister le contenu (ls)
WritewCréer, renommer ou supprimer des fichiers dans le dossier (avec x)
ExecutexEntrer dans le dossier (cd) et accéder aux fichiers

Supprimer un fichier : c'est le dossier qui décide

Section intitulée « Supprimer un fichier : c'est le dossier qui décide »

Point contre-intuitif et souvent mal compris. Supprimer un fichier n'écrit pas dans le fichier : cette opération retire son nom du dossier parent, via l'appel système unlink. Les droits vérifiés sont donc ceux du dossier, pas du fichier. Il faut le w (modifier le contenu du dossier) et le x (traverser le dossier pour l'atteindre).

Conséquence directe : un fichier en chmod 000 se supprime sans difficulté si vous avez le w sur son dossier, tandis qu'un fichier en 777 est indestructible dans un dossier où vous n'avez pas le w. Les permissions du fichier protègent son contenu ; celles du dossier protègent son nom et son existence.

Trois exceptions renversent cette règle, documentées dans unlink(2) :

  • le sticky bit (chmod +t, le t de /tmp) : dans un dossier partagé, seul le propriétaire du fichier (ou du dossier, ou root) peut le supprimer, même si tout le monde a le w ;
  • l'attribut immuable (chattr +i) : suppression refusée, même à root, quelles que soient les permissions ;
  • un système de fichiers monté en lecture seule : aucune suppression possible.

Les 9 caractères de permissions sont répartis en trois groupes de trois :

rwx r-x r--
─── ─── ───
u g o
NiveauLettreS'applique à
User (propriétaire)uLe propriétaire du fichier
Group (groupe)gLes membres du groupe du fichier
Others (autres)oTous les autres utilisateurs

Le système vérifie les droits dans cet ordre :

  1. Vous êtes le propriétaire ? → droits u appliqués
  2. Vous êtes membre du groupe ? → droits g appliqués
  3. Sinon → droits o appliqués
PermissionsQui peut quoi
-rw-r--r--Propriétaire lit et écrit. Groupe et autres lisent seulement.
-rwxr-xr-xPropriétaire a tous les droits. Groupe et autres lisent et exécutent.
-rwx------Seul le propriétaire a accès. Personne d'autre ne peut rien faire.
drwxr-xr-xDossier accessible à tous, mais seul le propriétaire peut y créer des fichiers.

Pour vous entraîner, lancez ls -la dans votre répertoire personnel :

Fenêtre de terminal
ls -la ~/

Essayez de décoder chaque ligne : qui est le propriétaire ? quel groupe ? quelles permissions pour chaque niveau ?

Quand vous créez un fichier, il n'a pas rwxrwxrwx par défaut. Un masque appelé umask retire automatiquement certaines permissions.

Fenêtre de terminal
umask
Résultat courant
0022

Le umask 022 signifie que les permissions w sont retirées pour le groupe et les autres :

CréationSans umaskAvec umask 022Résultat
Fichier666 (rw-rw-rw-)666 − 022644 (rw-r--r--)
Dossier777 (rwxrwxrwx)777 − 022755 (rwxr-xr-x)
SymptômeCause probableSolution
Permission denied en lisant un fichierPas de droit r pour votre niveauVérifier avec ls -l et demander au propriétaire
Permission denied en entrant dans un dossierPas de droit x sur le dossierVérifier avec ls -ld dossier/
Un fichier créé est exécutable alors qu'il ne devrait pasumask trop permissifumask 022 puis recréer le fichier
ls fonctionne mais cat fichier nonDroit r sur le dossier mais pas sur le fichierVérifier les droits sur le fichier lui-même

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • ls -l affiche les permissions sous la forme rwxrwxrwx : propriétaire, groupe, autres.
  • r = lire, w = écrire/modifier, x = exécuter (fichier) ou entrer (dossier).
  • Le système vérifie un seul niveau : user → group → others, dans cet ordre.
  • Supprimer un fichier dépend du dossier (w + x), pas du fichier : chmod 000 ne protège pas de la suppression. Exceptions : sticky bit, chattr +i, FS en lecture seule.
  • umask détermine les permissions par défaut des nouveaux fichiers.
  • Comprendre les permissions est un prérequis avant de les modifier.
  • Utiliser sudo : Exécuter des commandes avec les privilèges administrateur.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn