$_
StemLegacy
Phase 2Maîtriser bash

#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 :

Voir les 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 projets

Le 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 :

Décomposition
- 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 lecture
  • w (write) — droit d'écriture
  • x (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 :

Notation numérique
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
Exemple : chmod 755
$ 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 :

Notation symbolique
$ 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 autres

chown — 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 :

Changer le propriétaire
$ 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 groupe

En pratique, chown nécessite souvent les droits administrateur (sudo).

Récapitulatif

Résumé
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.

terminal — bash
user@stemlegacy:~$