Skip to main content

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.