Comprendre et modifier les permissions des fichiers et répertoires sous Linux avec chmod, chown, chgrp et umask.
Un système Linux (Debian/Ubuntu) avec accès à un interpréteur de commandes. Avoir un utilisateur standard et connaître la commande ls.
Sous Linux, chaque fichier ou répertoire possède trois catégories d’utilisateurs :
| Catégorie | Signification |
|---|---|
| Propriétaire (user) | L’utilisateur qui a créé le fichier (ou qui s’est vu attribuer la propriété) |
| Groupe (group) | Tous les utilisateurs appartenant à ce groupe |
| Autres (others) | Tous les autres utilisateurs du système |
Pour chaque catégorie, trois droits peuvent être accordés :
| Droit | Fichier | Répertoire |
|---|---|---|
| r (read) | Lire le contenu du fichier | Lister le contenu du répertoire (ls) |
| w (write) | Modifier ou supprimer le fichier | Créer, renommer ou supprimer des fichiers dans le répertoire |
| x (execute) | Exécuter le fichier (script, programme) | Traverser le répertoire (cd, accès) |
touch monfichier ls -l monfichier
Exemple d’affichage : -rw-r--r-- 1 alice users 0 juin 10 12:00 monfichier
| Champ | Exemple | Explication |
|---|---|---|
| 1er caractère | - | Type (- fichier, d répertoire, l lien symbolique) |
| Caractères 2 à 4 | rw- | Droits du propriétaire (rwx) |
| Caractères 5 à 7 | r-- | Droits du groupe |
| Caractères 8 à 10 | r-- | Droits des autres |
| Nom d’utilisateur | alice | Propriétaire |
| Nom du groupe | users | Groupe propriétaire |
On attribue un chiffre (0 à 7) pour chaque catégorie, calculé par la somme des droits :
| Droit | Valeur |
|---|---|
| r (read) | 4 |
| w (write) | 2 |
| x (execute) | 1 |
Exemple : chmod 755 monfichier → propriétaire = 7 (4+2+1 = rwx), groupe = 5 (4+0+1 = r-x), autres = 5 (r-x).
chmod 644 monfichier # rw-r--r-- chmod 755 monfichier # rwxr-xr-x chmod 600 secret # rw-------
On utilise les lettres u (user), g (group), o (others), a (all) et les opérateurs +, -, =.
chmod u+x monfichier # ajoute exécution pour le propriétaire chmod go-w monfichier # enlève l’écriture pour groupe et autres chmod a=r monfichier # tous en lecture seule (r--r--r--)
chown modifie le propriétaire (et éventuellement le groupe). Nécessite les droits sudo (sauf pour ses propres fichiers).
sudo chown bob monfichier # propriétaire devient bob sudo chown :staff monfichier # groupe devient staff sudo chown bob:staff monfichier # propriétaire bob et groupe staff
chgrp users monfichier # changer uniquement le groupe (si l’utilisateur en est membre)
umask définit les permissions par défaut des nouveaux fichiers et répertoires. Il s’agit d’un masque soustrait des permissions maximales (666 pour un fichier, 777 pour un répertoire).
umask # affiche la valeur courante (ex: 0022) umask 0027 # change le masque (propriétaire rwx, groupe rx, autres ---) touch nouveau_fichier # aura les droits 640 (rw-r-----)
Ces bits spéciaux modifient le comportement des exécutables ou des répertoires :
| Bit | Notation | Effet |
|---|---|---|
| SUID (setuid) | rws à la place de rwx pour le propriétaire | Le programme s’exécute avec les droits du propriétaire (ex: passwd) |
| SGID (setgid) | rws à la place de rwx pour le groupe | Sur un fichier : s’exécute avec le groupe du fichier. Sur un répertoire : nouveaux fichiers héritent du groupe. |
| Sticky bit | rwt à la place de rwx pour les autres | Sur un répertoire (ex: /tmp), seuls le propriétaire et root peuvent supprimer leurs fichiers. |
chmod u+s monprogramme # ajoute SUID chmod g+s monrep # ajoute SGID sur un répertoire chmod +t mondossier # ajoute le sticky bit
✅ Réponse : x (exécution)
✅ Réponse : chmod 754
✅ Réponse : groupe et autres
✅ Réponse : rw-r--r-- (644)
✅ Réponse : l'exécuter avec les droits du propriétaire