4.1 — Comprendre les permissions Linux
Chaque fichier possède un propriétaire, un groupe et des permissions pour trois catégories : utilisateur (u), groupe (g) et autres (o).
Lire les droits
ls -l fichier.txt
ls -ld dossier
stat fichier.txt
Exemple :
-rw-r----- 1 alex informatique 1250 août 7 10:00 rapport.txt
Décomposition :
| Bloc | Signification |
|---|---|
- |
fichier ordinaire |
rw- |
propriétaire : lecture et écriture |
r-- |
groupe : lecture |
--- |
autres : aucun droit |
Signification sur un fichier
| Droit | Lettre | Effet |
|---|---|---|
| lecture | r |
lire le contenu |
| écriture | w |
modifier le contenu |
| exécution | x |
lancer le fichier comme programme |
Signification sur un dossier
| Droit | Effet |
|---|---|
r |
lister les noms présents |
w |
créer, renommer ou supprimer des entrées |
x |
traverser le dossier et accéder aux éléments connus |
Les permissions d'un dossier expliquent pourquoi un utilisateur peut parfois supprimer un fichier qu'il ne peut pas modifier : la suppression agit sur l'entrée du dossier parent.
Tester un accès
test -r fichier && echo "lisible"
test -w fichier && echo "modifiable"
test -x script.sh && echo "exécutable"
Permissions par défaut et umask
umask
umask -S
La valeur umask retire des droits lors de la création. Une valeur courante 022 produit généralement des fichiers 644 et des dossiers 755. Une valeur 027 limite davantage l'accès des autres utilisateurs.
Modification temporaire dans le shell courant :
umask 027
Au-delà des droits classiques
Un + après les permissions dans ls -l peut signaler des ACL :
getfacl fichier.txt
Les systèmes avec SELinux ou AppArmor peuvent aussi refuser une opération malgré des droits Unix apparemment corrects. Avant d'appliquer chmod 777, identifier le propriétaire, les droits du dossier parent, les ACL et le contexte de sécurité.
777 donne lecture, écriture et exécution à tout le monde. Ce n'est presque jamais une bonne correction : cela masque la cause et augmente les risques.