Référence3 min de lecture · Mis à jour le 29 sept. 2026

Permissions Linux — référence complète (rwx, SUID, SGID, sticky, ACL)

Comprendre et maîtriser le modèle de permissions Linux, des bits rwx aux ACL POSIX, avec les pièges courants en production.

  • #linux
  • #least-privilege
  • #hardening

Le modèle propriétaire / groupe / autres

Chaque fichier possède un propriétaire, un groupe et trois triplets de droits : u (user), g (group), o (others). Pour un fichier, r autorise la lecture, w l'écriture et x l'exécution. Pour un répertoire, la sémantique change :

DroitFichierRépertoire
rlire le contenulister les noms (ls)
wmodifier le contenucréer, renommer, supprimer des entrées
xexécutertraverser (cd, accéder à un chemin)

Supprimer un fichier dépend des droits du répertoire parent, pas du fichier lui-même.

Notation octale

r=4, w=2, x=1. chmod 750 script.sh donne rwxr-x---. Valeurs usuelles : 644 (fichiers publics), 640 (configuration avec secrets lisibles par un groupe de service), 600 (clés privées), 755 / 750 (répertoires).

Bits spéciaux

  • SUID (4000) : l'exécutable s'exécute avec l'UID du propriétaire (/usr/bin/passwd). Cible prioritaire des audits : find / -perm -4000 -type f 2>/dev/null.
  • SGID (2000) : sur un répertoire, les fichiers créés héritent du groupe du répertoire — idéal pour les dossiers partagés d'équipe.
  • Sticky bit (1000) : dans /tmp, seul le propriétaire d'un fichier peut le supprimer.
install -d -m 2770 -o root -g projet /srv/projet   # dossier d'équipe
chmod +t /srv/depot                                 # sticky bit

umask

Le umask retire des droits à la création : avec umask 027, un fichier est créé en 640 et un répertoire en 750. Définissez-le dans l'unité systemd (UMask=0027) plutôt que dans les profils shell pour les services.

ACL POSIX

Quand un triplet ne suffit pas, les ACL ajoutent des entrées nominatives :

setfacl -m u:deploy:rwx /srv/app          # droit ponctuel
setfacl -d -m g:ops:rx /srv/app           # ACL par défaut (héritée)
getfacl /srv/app

Le + à la fin de ls -l signale une ACL. Le masque ACL plafonne les droits effectifs des entrées de groupe et nominatives.

Pièges fréquents en production

  1. chmod -R 777 pour « débloquer » : ouvre l'écriture à tous et casse les contrôles de SSH (StrictModes).
  2. Oublier le x sur un répertoire parent : Permission denied alors que le fichier est en 644.
  3. Service systemd tournant avec un User= différent du propriétaire des fichiers.
  4. SELinux : les permissions POSIX peuvent être correctes et l'accès refusé quand même (ls -Z, ausearch -m avc).

Méthode de diagnostic

namei -l /srv/app/config/app.yml   # droits de chaque composant du chemin
sudo -u appsvc cat /srv/app/config/app.yml

Autres labs de cette technologie