Le Blog de C-quad

Petite piqure de rappel sur les droits Unix

Plus précisément sur la représentation octale des droits.

Sur les systèmes Unix/Linux/BSD, les droits sur les fichiers sont définis pour le propriétaire, pour les utilisateurs appartenant au groupe et pour les autres utilisateurs. Ils sont représentés – par exemple lorsque l’on invoque la commande ls -l – par une suite de 3 lettres (r,w et x pour respectivement read/lire, write/écrire, execute/exécuter), mais peuvent être représentés par des chiffres, par exemple comme suit :

r w – r – – r – – est la même chose que 644

Il s’agit de la représentation octale. Pour être expliquée, il faut partir de la forme binaire des droits, suivant ce schéma :

000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7

On peut associer chaque triplet aux trois entités (propriétaire, groupe, autres) des droits, ainsi, un fichier ayant le droit du propriétaire en lecture et écriture (r w -) sera écrit 110, 1 pour le r, 1 pour le w et 0 pour le flag x qui n’est pas attribué. Le procédé est le même pour les deux autres triplets. Pour l’exemple complet, prenons : r w – r – – r – -, soit 110 100 100. Ensuite on part du principe que l’on ajoute les chiffres des valeurs binaires des triplets pour obtenir la valeur octale. En continuant sur l’exemple précédent : 110 en binaire vaut 6 en décimal, 100 vaut 4, ainsi nous avons 6 – 4 – 4, simplifié en 644. Notre fichier a les droits 644.

r w -  r - -  r - - = 110 100 100 = 644
r w - r w -  r - - = 100 100 100 = 664
r - x r - x  r - x = 101 101 101 = 555
r w x  r - x r - - = 111 101 000 = 754

Laisser un commentaire