Les droits et propriétés sous Linux
1. Principe des permissions sous Linux
Chaque fichier ou dossier sur un système de fichiers Linux possède trois ensembles de permissions, chacune correspondant à une catégorie d'utilisateurs :
- Propriétaire (u) : L'utilisateur qui possède le fichier.
- Groupe (g) : Le groupe auquel appartient le fichier.
- Autres (o) : Tous les autres utilisateurs du système.
Pour chacune de ces catégories, on peut attribuer des permissions spécifiques :
- r (read) : Droit de lecture
- w (write) : Droit d'écriture
- x (execute) : Droit d'exécution (pour les fichiers), ou d'entrer dans le répertoire (pour les dossiers).
Lorsqu'on liste un fichier avec ls -l, on obtient un affichage du type :
-rwxr-xr-- 1 utilisateur groupe 2048 date monfichier
Ce qui se décompose en 10 caractères :
- Le premier caractère indique le type de fichier (par exemple - pour un fichier, d pour un répertoire).
- Les trois caractères suivants rwx indiquent les permissions du propriétaire (user).
- Les trois suivants r-x indiquent les permissions du groupe.
- Les trois derniers r-- indiquent les permissions des autres.
2. Représentation des permissions en chiffres
Plutôt que d'utiliser des lettres, Linux permet d'attribuer les droits en utilisant une notation octale (chiffres de 0 à 7). Cette notation est très répandue et plus concise, je vous la recommande.
Chaque catégorie de permission (r, w, x) correspond à une valeur binaire.
- r (lecture) vaut 4
- w (écriture) vaut 2
- x (exécution) vaut 1
Pour chaque trio (propriétaire, groupe, autres), on additionne les valeurs correspondant aux permissions souhaitées.
Exemples :
- rwx = 4 (lecture) + 2 (écriture) + 1 (exécution) = 7
- r-- = 4 (lecture) + 0 (pas d'écriture) + 0 (pas d'exécution) = 4
- rw- = 4 (lecture) + 2 (écriture) + 0 (pas d'exécution) = 6
- r-x = 4 (lecture) + 0 (pas d'écriture) + 1 (exécution) = 5
Ainsi, un code à trois chiffres correspond aux droits du propriétaire, du groupe, et des autres dans cet ordre.
Par exemple, chmod 755 fichier signifie :
- Propriétaire : 7 → rwx
- Groupe : 5 → r-x
- Autres : 5 → r-x
3. Utilisation de chmod
La commande chmod permet de modifier les droits d'accès à un fichier ou à un dossier.
Syntaxe générale :
chmod XYZ fichier
où X, Y et Z sont des chiffres entre 0 et 7.
- chmod 700 fichier : Le propriétaire a rwx, groupe et autres n'ont aucun droit.
chmod 700 fichier
- chmod 755 fichier : Le propriétaire a rwx, groupe et autres ont r-x.
chmod 755 fichier
- chmod 644 fichier : Le propriétaire a rw-, groupe et autres ont r--. (Typique pour un fichier texte accessible en lecture par tous, mais modifiable uniquement par le propriétaire)
chmod 644 fichier
- chmod 600 fichier : Seul le propriétaire a rw-, personne d'autre n'a accès. (Typique pour des fichiers contenant des informations sensibles comme des clés SSH)
chmod 600 fichier
Pour un répertoire, chmod fonctionne de la même façon, mais la permission x permet d'entrer dans le répertoire. Par exemple :
- chmod 755 mon_repertoire : Le propriétaire peut lire, écrire, entrer dans le répertoire ; le groupe et les autres peuvent lister et entrer, mais pas écrire.
chmod 755 mon_repertoire
On peut appliquer chmod récursivement avec -R si on souhaite modifier toute une arborescence :
chmod -R 755 mon_repertoire
4. Utilisation de chown
La commande chown permet de changer le propriétaire et/ou le groupe d'un fichier ou d'un répertoire.
Syntaxe générale :
chown nouveau_proprio:nouveau_groupe fichier
- Pour changer uniquement le propriétaire :
sudo chown alice fichier
(Le groupe reste inchangé.)
- Pour changer propriétaire et groupe :
sudo chown alice:developpeurs fichier
- Pour changer récursivement les propriétaires dans un dossier et tous ses sous-dossiers :
sudo chown -R alice:developpeurs mon_repertoire
chown nécessite généralement les privilèges administrateur (sudo).
5. Quelques cas d'usage concrets :
- Fichier de configuration sensible (ex: ~/.ssh/id_rsa pour une clé privée SSH) :
chmod 600 ~/.ssh/id_rsa
Le propriétaire (vous) peut lire et écrire, mais personne d'autre n'y a accès.
- Script exécutable par le propriétaire uniquement :
chmod 700 mon_script.sh
Le propriétaire peut l'exécuter, le lire, le modifier, mais ni le groupe ni les autres n'y ont accès.
- Fichier web lisible par tous mais modifiable uniquement par le propriétaire :
chmod 644 index.html
Propriétaire : rw-
Groupe : r--
Autres : r--
Tout le monde peut voir la page, mais seul le propriétaire (généralement un utilisateur système dédié) peut la modifier.
- Répertoire partagé en lecture pour tous, écriture uniquement pour le propriétaire :
chmod 755 /var/www
Propriétaire : rwx
Groupe : r-x
Autres : r-x
Les autres peuvent entrer et lire, mais pas créer ou modifier les fichiers à l'intérieur.
6. Récapitulatif des valeurs chiffrées courantes :
- 7 = rwx
- 6 = rw-
- 5 = r-x
- 4 = r--
- 0 = --- (aucun droit)
Permutations classiques :
- 777 = rwx rwx rwx
- 755 = rwx r-x r-x
- 700 = rwx --- ---
- 644 = rw- r-- r--
- 600 = rw- --- ---
Exercices :
Exercices sur les propriétés et permissions sur Linux
↑ Haut de page