Droits d'accès à un fichier sur un système Unix/Linux
Un fichier ou un répertoire appartient toujours à un utilisateur et à un groupe.
D'autre part, un fichier peut être accessible en lecture, en écriture et en exécution.
Les permissions sont distinctes pour l'utilisateur propriétaire du fichier, pour le groupe propriétaire et pour le reste du monde.
Ces permissions sont affichées par la commande ls quand on lui passe l'option -l:
# ls -l
-rw-r--r-- 1 arnaud users 1055740 Jun 13 16:42 toto
Cette ligne signifie que le fichier toto appartient à l'utilisateur arnaud et au groupe users, avec les droits -rw-r--r--:
- Le premier caractère représente le type de fichier: "-" pour un bête fichier normal, "d" pour un répertoire, "p" pour un tube, "b" ou "c" pour un périphérique,
"l" pour un lien symbolique.
- Les trois suivants représentent les droits de l'utilisateur propriétaire du fichier:
- "r" représente le droit de lecture,
- "w" le droit d'écriture
- "x" le droit d'exécution.
- Ici, "rw-" signifie que l'utilisateur arnaud peut lire et écrire dans le fichier, mais pas l'exécuter.
- Les trois caractères suivants représentent les permissions du groupe; ici, tous les membres du groupe users peuvent lire le fichier, mais pas y écrire.
- Enfin, les trois derniers caractères ont une signification analogue pour le reste des utilisateurs.
Pour raccourcir l'écriture des droits, on utilise une notation dite "octale": selon la règle suivante:
- Chacun des 9 derniers caractères représente une valeur vraie ou fausse. En informatique, on représente ça par un bit.
- On a donc trois groupes de trois bits, c'est à dire trois chiffres octaux (en base 8), représentés comme suit:
rwx
| |+-- 1
| +--- 2
+---- 4
- Par exemple, un groupe "rwx" est représenté par 4+2+1 = 7
- Un groupe "r--" par 4+0+0 = 4
- Un groupe "--x" par 0+0+1 = 1
Ainsi, les permissions
rw-r--r-- de notre fichier toto s'écrivent
644.