#5 Permissions et utilisateurs
chmod, chown, ls -l
Comprendre les permissions
Sous Linux, chaque fichier a des permissions qui contrôlent qui peut le lire, le modifier ou l'exécuter. Quand vous tapez ls -l, la première colonne affiche ces permissions :
$ ls -l
-rw-r--r-- 1 user user 42 mar 3 10:00 notes.txt
-rwxr-xr-x 1 user user 128 mar 3 10:05 script.sh
drwxr-xr-x 2 user user 40 mar 3 09:30 projetsLe format rwxr-xr-x
La chaîne de permissions se lit en quatre parties. Le premier caractère indique le type (- pour un fichier, d pour un dossier). Les neuf caractères suivants se divisent en trois groupes de trois :
- rwx r-x r-x
│ │ │ └── Autres (others) : r-x
│ │ └────── Groupe (group) : r-x
│ └────────── Proprio (user) : rwx
└──────────── Type : - (fichier)Chaque groupe contient trois lettres :
r(read) — droit de lecturew(write) — droit d'écriturex(execute) — droit d'exécution
Un tiret - signifie que le droit n'est pas accordé. Par exemple, r-- signifie lecture seule.
chmod — Modifier les permissions
La commande chmod (change mode) modifie les permissions d'un fichier. Il y a deux notations : la notation numérique (octale) et la notation symbolique.
En notation numérique, chaque droit a une valeur :r=4, w=2, x=1. On additionne les valeurs pour chaque groupe :
7 = rwx (4+2+1) — tous les droits
5 = r-x (4+0+1) — lecture + exécution
4 = r-- (4+0+0) — lecture seule
6 = rw- (4+2+0) — lecture + écriture
0 = --- (0+0+0) — aucun droit$ chmod 755 script.sh
# user=rwx (7), group=r-x (5), others=r-x (5)En notation symbolique, on utilise + pour ajouter et - pour retirer un droit :
$ chmod +x script.sh # Ajouter le droit d'exécution
$ chmod u+w fichier.txt # Ajouter écriture pour le propriétaire
$ chmod go-w fichier.txt # Retirer écriture pour groupe et autreschown — Changer le propriétaire
La commande chown (change owner) modifie le propriétaire et/ou le groupe d'un fichier. Le format est utilisateur:groupe :
$ chown alice:dev fichier.txt
# Le fichier appartient maintenant à alice, groupe dev
$ chown alice fichier.txt
# Change seulement le propriétaire
$ chown :dev fichier.txt
# Change seulement le groupeEn pratique, chown nécessite souvent les droits administrateur (sudo).
Récapitulatif
ls -l # Voir les permissions
chmod 755 fichier # Permissions en notation numérique
chmod +x fichier # Ajouter le droit d'exécution
chown user:group fichier # Changer propriétaire et groupeÀ vous de jouer
Essayez ls -l pour voir les permissions, puis modifiez-les avec chmod et chown dans le terminal ci-dessous.