Chaque fichier ou dossier sur un système de fichiers Linux possède trois ensembles de permissions, chacune correspondant à une catégorie d'utilisateurs :
Pour chacune de ces catégories, on peut attribuer des permissions spécifiques :
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 :
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.
Pour chaque trio (propriétaire, groupe, autres), on additionne les valeurs correspondant aux permissions souhaitées.
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 :
La commande chmod permet de modifier les droits d'accès à un fichier ou à un dossier.
chmod XYZ fichier
où X, Y et Z sont des chiffres entre 0 et 7.
chmod 700 fichier
chmod 755 fichier
chmod 644 fichier
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
On peut appliquer chmod récursivement avec -R si on souhaite modifier toute une arborescence :
chmod -R 755 mon_repertoire
La commande chown permet de changer le propriétaire et/ou le groupe d'un fichier ou d'un répertoire.
chown nouveau_proprio:nouveau_groupe fichier
sudo chown alice fichier
(Le groupe reste inchangé.)
sudo chown alice:developpeurs fichier
sudo chown -R alice:developpeurs mon_repertoire
chown nécessite généralement les privilèges administrateur (sudo).
chmod 600 ~/.ssh/id_rsa
Le propriétaire (vous) peut lire et écrire, mais personne d'autre n'y a accès.
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.
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.
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.
Exercices sur les propriétés et permissions sur Linux