Précédent Index Suivant

3.8   Les droits

Chaque fichier, répertoire ou fichier spécial est représenté par un descripteur. Entre autres choses, on y trouve
un propriétaire, une date de dernière modification, une liste de droits d'accès.
Le propriétaire d'un fichier est un utilisateur. L'ensemble des utilisateurs est scindé en groupes : ensemble d'utilisateurs travaillant, par exemple, sur un même projet. Un descripteur répartit cette masse de personnes en trois classes :
le propriétaire (unique), le groupe (non moins unique) du propriétaire, tous les autres utilisateurs.
Lecture et écriture sont les opérations fondamentales que l'on peut appliquer à un fichier. Créer ou supprimer un fichier est assimilé à une écriture dans son répertoire père.

sh ne peut exécuter un fichier que si celui-ci possède le droit d'être exécuté, c'est-à-dire si c'est un programme issu d'une édition de liens sans faute ou encore si c'est un fichier contenant un texte compréhensible par sh.

Pour un répertoire le sens de ces droits est un peu plus complexe. Le droit de lecture permet de consulter ce que contient un répertoire (par ls, par exemple). Le droit d'écriture permet de créer ou supprimer des entrées du répertoire ; enfin le droit d'exécution permet d'accéder aux entrées dont on connait les noms (surtout utile quand on ne dispose pas des deux autres droits).

Par défaut, les fichiers ou répertoires que créent un utilisateur sont dans les modes -rw-rw-r-- et drwxr-xr-x. Les membres de son propre groupe ont les mêmes droits que le créateur mais les étrangers ne peuvent qu'au plus lire et fouiller mais au grand jamais détruire.

Tous les attributs d'un descripteur sont modifiables.

chown (pour CHange OWNer) change le propriétaire.
 chown nemo *.f 
donne à nemo tous les fichiers FORTRAN du répertoire courant.

chgrp (pour CHange GRouP) change le groupe.
 chgrp daemon *.c 
donne au groupe démoniaque les fichiers en C. Ce groupe est un groupe système comme sys et bin. daemon est le groupe du super-utilisateur root. Les utilisateurs sont souvent dans le groupe users.

chmod (pour CHange MODes) change les droits d'accès.
 chmod u+xa-w * */* */*/* 
(+x) rend exécutable pour le propriétaire (user) et interdit (-) pour tout le monde (all) le doit de modification (w).

On peut consulter les droits grâce à l'option -l de ls. ls -l liste le type, les droits, le nombre de liens, le propriétaire, la taille, la date de dernière modification de toutes les entrées du répertoire courant. Par exemple
$ ls -l
-rw-r--r--      1 queinnec     2205 Feb 10 20:52        u00
-rw-r--r--      1 queinnec    25932 Feb 11 22:04        u2
-rw-r--r--      1 queinnec    12699 Feb 19 21:21        u3
-rw-------      1 queinnec    12651 Feb 19 21:20        u3.CKP
drw-r--r--      1 queinnec       64 Feb  7 21:36        ufinal
-rw-r--r--      1 queinnec     2125 Feb  7 21:36        umc
-rw-r--r--      1 queinnec      988 Jan 31 21:11        unp
-rw-r--r--      1 queinnec     2398 Jan 29 22:05        unx1  
Le type est - pour un fichier normal et d pour un répertoire. Les droits sont représentés par les neuf caractères qui suivent :
r (pour Read) est la lecture, w (pour Write) est l'écriture, x (pour eXecute) est l'« exécutabilité ».
Un tiret signale un droit non octroyé.
Précédent Index Suivant