Gestion des droits

17 Sep. 2006
Auteur : Hyacinthe MENIET
Responsable : papatou
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Linux est un système multi-utilisateur. Cela signifie que plusieurs personnes peuvent utiliser l'ordinateur simultanément (et pas uniquement les unes à la suite des autres), et que le système se charge de faire respecter la loi entre elles. Les ressources de la machine sont ainsi partagées équitablement, tant au niveau de la puissance de calcul qu'au niveau de la mémoire, du disque, des imprimantes... Cela implique une gestion avancée de la sécurité, qui est assurée par le noyau et par le système de fichiers.

1. Le Type de fichier :

C'est le "-" qui indique qu'il s'agit d'un fichier ordinaire. Linux distingue 4 types de fichiers :

2. Les droits "classiques" :

Les droits "classiques" sont représentés par "rwxrwxrwx" de l'exemple plus haut. Vous remarquerez qu'il y'a 3 fois la même série de lettres : rwx. Les droits d'accès à un fichier vont être donnés : Ces droits se décomposent en 3 niveaux : Tous ces droits sont évidement géré par des bits codés dans l'i-node du fichier. Si le bit d'un des 9 champs est à 1 alors la lettre correspondante est affichée sinon c'est "-". Quelques exemples : Comme vous le savez il n'y a pas de règle sans exception, dans notre cas l'exception c'est root, mais c'est qui root ? root c'est l'administrateur mais en réalité c'est "Dieu". Il a à peu près tous les droits même celui du tuer le système. Vous devez donc être très gentil avec lui, sinon gare à sa colère :-) Si vous avez la possibilité de vous loguer en root, je vous conseille de limiter cela au tâches d'administration du système, une erreur est si vite arrivée.

3. La commande chmod :

La commande chmod permet de modifier les droits d'accès à un fichier. Un utilisateur ne peut modifier les droits que des fichiers qui lui appartiennent. Sauf root bien-sûr. Les droits sous linux sont repérés par une série de 3 valeurs octales. La première correspond au propriétaire, la seconde au groupe associé et la dernière au reste de la planète. Pour chaque catégorie d'utilisateur l'accès en lecture vaut à 4, l'accès en écriture vaut à 2 et l'accès en exécution 1. Quelques exemples :

4. Les droits spéciaux :

Trois fois trois font neuf, le compte est bon me direz-vous ? vous auriez tort, car en réalité c'est trois fois quatre qui font douze. Il existe sous linux des droits spéciaux. C'est ce qui permet par exemple que dans le répertoire /tmp auquel tout le monde a un accès plein droit, vous ne pouviez néanmoins supprimer les fichiers des autres utilisateurs.

4.1 Droits spéciaux sur les fichiers :

4.2 Droits spéciaux sur les répertoires :

Il n'y a pas de setuid pour les répertoires, en revanche,

4.3 chmod :

La logique est la même que précédemment, il suffit de rajouter une 4 ème valeur octale, telle que setuid vaille 4, setgid vaille 2 et sticky bit vaille 1. Si vous ne souhaitez pas jouer avec les droits spéciaux, faites un chmod avec 3 chiffres (par défaut les droits spéciaux conserveront leurs valeurs). Mais si vous souhaitiez par exemple que le contenu du répertoire /mnt/projet appartienne au groupe propriétaire du répertoire mais qu'en sus chacun ne puisse que ses fichiers, vous pouvez taper :
chmod 3777 /mnt/projet
Notez que c'est la colonne la plus à gauche qui code les droits spéciaux.