Les droits sous Unix

Posted by

I) Introduction :

Le système d’exploitation Linux et de manière générale tout système d’exploitation multi utilisateurs doit savoir gérer différents droits selon différents utilisateurs. Cette gestion est très importante car elle permet de restreindre ou bien de donner des droits à des personnes précises ou bien à des groupes.

II) Affichons les droits :

Nous allons dans un premier temps créer un fichier nommé toto par la commande touch toto.
Pour afficher les droits sur ce fichier, la commande ls nous y aide grandement. Ainsi ls -l toto va vous les afficher.

III) Interprétation des droits :

Dans un premier temps nous allons dire qu’il n’existe que trois droits. Ces trois droits sont la lecture, l’écriture et l’execution.

  • La lecture est symbolisée par la lettre r (comme read).
  • L’écriture est symbolisée par la lettre w (comme write).
  • L’execution est symbolisée par la lettre x (comme execute).

Donc nous voyons qu’il existe trois droits différents, mais à qui sont-ils appliqués? Il y a les droits pour les utilisateurs (comme la lettre u), ceux pour le groupe (comme la lettre g) et enfin ceux pour les autres (comme la lettre o, venant de other).
Donc on peut, sur un même fichier, définir les droits pour notre utilisateur, le groupe et les autres catégories d’utilisateurs n’appartenant ni à l’un ni à l’autre.

Revenons à notre fichier toto, affichons ses droits par un ls -l toto. Il en ressort la chose suivante :

 -rw------- 1 hindy hindy 0 2002-08-30 15:03 toto

On voit que les lettres r et w qui symbolisent le droit de lecture et le droit d’écriture pour l’utilisateur hindy. Les tirets veulent simplement dire qu’il n’y a aucun droit. Ainsi le groupe ne peut ni lire, ni écrire, ni executer, il en va de même pour les autres.

IV) Changeons les droits :

Il existe deux solutions pour changer les droits, soit en utilisant l’octal (un petit peu déroutant au début mais on s’y fait très vite) soit en utilisant une solution formelle.
Il y a deux commandes à connaître : chmod et chown. Je vous laisse vous reporter aux manuels de ces commandes respectives pour plus d’informations.

Faisons un tableau pour y voir plus clair :

 ---------------------------
| u     |   g    |   o   |
| rwx  |  rwx  |  rwx |
 ---------------------------

N’oublions pas que u est pour user, g pour group et o pour other.
Nous allons utiliser la commande chmod avec la notation formelle. A cette commande on lui fournit des arguments ainsi + permet d’ajouter et – de retirer. Prenons un exemple qui sera plus simple qu’un long discours.
chmod ugo+r toto, cette commande va donner le droit de lecture à l’utilisateur, au groupe et aux autres. En somme toutes les personnes possédant un accès à cette machine peuvent visualiser ce fichier.
Il existe un équivalent à ugo c’est la lettre a qui symbolise all (tous). Ainsi en faisant chmod a+r toto nous aurions obtenu le même résultat.

Pour retirer le droit de lecture aux autres il suffit de faire la commande suivante : chmod o-r toto.

On peut aussi combiner les deux en même temps : chmod ug+r,o-r toto donnera le droit de lecture à l’utilisateur et au groupe, mais retire le droit de lecture aux autres.

Comme je vous le disais un peu plus haut il est possible d’utiliser la notation octale. C’est-à-dire vous disposez des nombres de 0 à 7. Encore une fois faisons un tableau.

 --------------------
|Droit | Octal |
 --------------------
|    r   |   4     |
|   w   |   2     |
|   x    |   1     |
|   -    |   0     |
 -------------------

Il faut fournir trois chiffres à la commande chmod. Chacun des chiffres symbolisant les droits de l’utilisateur, du groupe et enfin des autres. Il faut sommer les chiffres en octal pour le droit désiré. Par exemple on veut donner rw on obtiendra donc 4 + 2 soit 6. Si on veut ne donner aucun droit il faut utiliser le nombre 0.

chmod 600 toto donnera rw (4 + 2) à l’utilisateur et – pour le groupe et les autres.

chmod 644 toto donnera rw pour l’utilisateur, et seulement r pour le groupe et les autres.

V) Changeons le propriétaire :

En anglais le verbe to own veut dire posséder, c’est pour cela que nous allons utiliser la commande chown qui veut dire change owner (change le propriétaire).
chown root toto attribuera au fichier toto le propriétaire root.

Mais on peut aussi change le nom du groupe (éventuellement jeter un coup d’oeil à la commande chgrp).
chmod user.groupe fichier où user est un utilisateur valide du système, et groupe un groupe valide du système.
Par exemple chmod root.hindy toto donnera l’utilisateur root et le groupe hindy pour le fichier toto.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *