Comprendre les permissions Linux

3 min de lecture07 novembre 2026

Les permissions Linux décident qui peut lire, modifier ou exécuter un fichier. La plupart des incidents applicatifs viennent d'un réglage trop permissif ou trop restrictif : un site qui ne peut pas écrire dans son dossier d'uploads, ou un fichier de configuration lisible par tous.

Lire les permissions

Bash
ls -l /var/www/site/index.php
stat /var/www/site/index.php
namei -l /var/www/site/index.php

Une ligne typique :

Texte
-rw-r--r-- 1 www-data www-data 1024 Nov  7 10:00 index.php

Le premier caractère est le type (- fichier, d dossier, l lien). Les neuf suivants forment trois groupes de trois : propriétaire, groupe, autres. rw- signifie lecture et écriture sans exécution. namei -l affiche les permissions de chaque dossier du chemin, ce qui révèle souvent le vrai blocage.

Octal Droits Usage courant
755 rwxr-xr-x dossier, exécutable
644 rw-r--r-- fichier web statique
600 rw------- secret, clé privée
700 rwx------ dossier privé
640 rw-r----- fichier lisible par le groupe
775 rwxrwxr-x dossier partagé par un groupe

Les chiffres s'additionnent : lecture 4, écriture 2, exécution 1. Sur un dossier, l'exécution signifie « traverser » : sans elle, impossible d'accéder aux fichiers qu'il contient, même s'ils sont lisibles.

Modifier

Bash
sudo chmod 644 fichier.conf
sudo chmod 755 /var/www/site
sudo chmod u+x script.sh
sudo chmod g-w,o-rwx donnees.txt
sudo chown utilisateur:groupe fichier
sudo chgrp www-data fichier

Pour une arborescence web, traitez séparément dossiers et fichiers :

Bash
sudo find /var/www/site -type d -exec chmod 755 {} +
sudo find /var/www/site -type f -exec chmod 644 {} +

Un chmod -R 755 appliqué aux fichiers rend exécutables des images et des scripts inutiles. Un chmod -R mal ciblé peut aussi retirer le droit d'exécution des dossiers et casser le site.

chown -R suit les liens symboliques de façon surprenante selon les versions : utilisez -h pour agir sur le lien lui-même quand c'est nécessaire.

umask et permissions par défaut

umask définit les droits retirés aux nouveaux fichiers et dossiers :

Bash
umask
umask -S

Un umask 022 donne 755 aux dossiers et 644 aux fichiers. Un umask 027 donne 750 et 640, plus restrictif. Pour un service, définissez l'umask dans son unité systemd (UMask=0027) plutôt que de compter sur le shell.

Cas particuliers et pièges

  • setuid (4000) fait exécuter un programme avec les droits de son propriétaire ; à éviter sauf outil système prévu.
  • setgid (2000) sur un dossier fait hériter le groupe aux nouveaux fichiers.
  • Le sticky bit (1000) sur /tmp (1777) empêche de supprimer les fichiers des autres.
  • Les ACL (getfacl, setfacl) ajoutent des droits fins sans changer le propriétaire.

Pourquoi éviter chmod 777 : tout utilisateur, y compris un processus compromis, peut modifier ou remplacer le fichier. Sur un site web, cela permet à une faille d'installer un shell persistant. Le serveur web a besoin de lire, pas d'écrire partout ; seul le dossier d'uploads ou de cache doit être inscriptible, et de préférence par un utilisateur dédié.

Vérifier

Bash
stat -c '%a %U:%G %n' fichier
namei -l /var/www/site/index.php
sudo -u www-data test -r /var/www/site/index.php && echo lisible

Publicité

Cet article vous a-t-il aidé ?

À lire aussi