samedi 23 mars 2013

Gestion des droits d'accès aux fichiers sous Linux



Comme tout bon système d'exploitation multi-utilisateurs, Linux comporte des dispositifs efficaces pour le contrôle de l'accès aux fichiers.
Si vous avez l'habitude du système de fichiers FAT16/FAT32 de DOS/Windows, cela constituera un changement important pour vous.
Lorsque l'on consulte un répertoire Linux en demandant l'affichage de tous les détails (commande ls -la),
on constate quechaque fichier est accompagné d'un ensemble d'attributs :

 
  • l'identifiant du propriétaire du fichier (en général, l'utilisateur qui a créé ce fichier).
  • l'identifiant d'un groupe d'utilisateurs qui peut posséder des droits sur ce fichier (groupe propriétaire).
  • Trois groupes de 3 bits définissant les droits d'accès de chacun :



S'il sont activés, le bit r indique un droit de lecture,
le bit w un droit d'écriture
et le bit x un droit d'exécution.

Par exemple, si un fichier est accompagné de la séquence rwx r-x --- , cela signifie que son propriétaire a tous les droits, que son groupe propriétaire peut lire et exécuter le fichier (en supposant qu'il soit exécutable), et que le reste du monde n'y a pas accès du tout (aucun droit).

En réalité, ces attributs sont de véritables bits, évidemment regroupés dans des octets par la machine.
On peut donc représenter l'ensemble des droits associés à un fichier par un groupe de 3 octets :
un octet pour les droits du propriétaire,
un octet pour les droits du groupe,
un octet pour les droits du reste du monde.
Il est commode de représenter ces octets sous forme décimale, mais il faut pour cela faire un petit rappel d'arithmétique concernant la conversion binaire   =>   décimal :
(Les triades , chaque commande de droits d'accès est composé de trois lots de triades)

Avec un peu d'habitude, on peut ainsi arriver à décrire l'ensemble des droits associés à un fichier d'une manière extrêmement concise.
Par exemple les triades:

- 777 signifie que tout le monde a tous les droits (lecture, écriture, exécution) sur ce fichier.

- 750 signifie que le propriétaire a tous les droits, le groupe peut lire et exécuter, les autres n'ont aucun droit.

- 644 indique un fichier que tous peuvent lire, mais où le propriétaire seul est autorisé à écrire. Etc...

La commandes en ligne chmod permet de modifier les droits d'un fichier,
ou mieux encore d'un ensemble de fichiers d'une manière très efficace.
Exemple :
chmod 750 *   =>   tous les fichiers du répertoire courant reçoivent les attributs : rwx r-x ---
chmod 754 ar*   =>   tous les fichiers commençant par ar reçoivent les attributs : rwx r-x r--

La commande chown permet de changer le propriétaire.
Exemple :
chown louis *   =>   louis devient le propriétaire de tous les fichiers du répertoire courant.
D'une manière analogue, la commande chgrp permet de changer le groupe.
Exemple :
chgrp marc *.doc   =>   tous les fichiers dont le nom se termine par .doc sont associés au groupe marc.

0 Commentaire:

Enregistrer un commentaire

 
;