Les permissions constituent un système de définition des droits d'accès ou d'exécution, pour les fichiers disponibles sur le système. Tout fichier appartient à la fois à un utilisateur (son propriétaire) et à un groupe.
Un utilisateur appartient au moins à un groupe. Ce groupe porte le même nom que celui de l'utilisateur. Il peut aussi appartenir à plusieurs groupes. Un groupe contient un ou plusieurs utilisateurs.
Ainsi pour chaque fichier, le monde de ses utilisateurs potentiels est scindé en plusieurs catégories.
Linux permet de spécifier les droits d’action sur un fichier, que peuvent exercer les utilisateurs des trois catégories précédentes.
Les trois protections possibles sont :
De façon générale, ces permissions sont consultables par la commande : ls –l. Cette commande affiche plusieurs colonnes.
moi@ordinateur:~$ ls -l total 436 drwxr-xr-x 14 moi moi 4096 déc. 5 20:43 Divers drwxr-xr-x 8 moi moi 4096 nov. 30 09:09 Site -rw-rw-r-- 1 moi moi 7790 août 17 11:33 page.html -rw-rw-r-- 1 moi moi 350 août 17 11:42 codes.txt ...
Dans la première colonne, on trouve de gauche à droite :
Nature du fichier | Propriétaire u | Groupe g | Les autres o | Exécutable ou non |
---|---|---|---|---|
- d l | r w x | r w x | r w x | x - |
Le premier caractère indique la nature du fichier :
Le système de droits est spécifié par les neuf caractères suivants, correspondant aux trois catégories du fichier.
Le dernier caractère indique si le fichier est exécutable :
De façon générale, l’utilisateur qui crée un fichier en devient le propriétaire, et le groupe auquel l’utilisateur appartient devient le groupe du fichier.
On pourra modifier les droits par les commandes suivantes :
chown | Changement de propriétaire |
---|---|
chgrp | Changement de groupe |
Les droits d'accès se définissent avec la commande chmod.
Exemple de commande permettant à tous de traverser le dossier /home/utilisateur/ :
chmod a+x /home/utilisateur/
Les droits d'accès peuvent être spécifiés de deux façons, avec des lettres ou avec des nombres. La commande ci-dessous permet un accès libre à tous au dossier /home/utilisateur/ de manière récursive, c'est à dire que tout ce que contient ce dossier est également en accès libre.
chmod -R 777 /home/utilisateur/
Correspondances de représentation des droits :
Droit | Valeur littérale | Valeur numérique |
---|---|---|
Aucun droit | --- | 0 |
Exécution seulement | --x | 1 |
Ecriture seulement | -w- | 2 |
Ecriture et exécution | -wx | 3 |
Lecture seulement | r-- | 4 |
Lecture et exécution | r-x | 5 |
Lecture et écriture | rw- | 6 |
Tous les droits | rwx | 7 |
Exemple de commande :
chmod u+x script.sh