Logo de kxs.frCours d'informatique pour le lycée et la prépa

Linux – Droits

Introduction

Après avoir vu les commandes de base nous allons voir la gestion des droits sous Linux. C’est à dire ce qu’un utilisateur est autorisé à effectuer sur un fichier ou un répertoire.

Propriétaires

Sous Linux tous les fichiers et répertoires sont affectés à un utilisateur et un groupe. On dit qu’ils sont les propriétaires du fichier.

Lire les propriétaires

1) Allez dans votre répertoire personnel et effectuez un touch test pour créer un fichier vide puis un ls -l.

Vous devriez obtenir une ligne ressemblant à ceci :

-rw-r--r-- 2 login login 0 sept. 10 12:22 test

La partie qui nous intéresse ici est : login login. Ce sont l’utilisateur propriétaire du fichier/répertoire et le groupe propriétaire du fichier/répertoire.

2) Indiquez clairement ci-dessous ou sont indiqués l’utilisateur et le groupe propriétaires du fichier test.

-rw-r--r-- 2 login login 0 sept. 10 12:22 test

Le premier login indique l'utilisateur, le deuxième login indique le groupe.

3) Trouvez l’utilisateur et le groupe propriétaires des répertoires à la racine du système /.

root

4) Quels sont l’utilisateur et le groupe propriétaires de /var/mail ?

root pour l'utilisateur et mail pour le groupe

Root est l’administrateur du système, il a tous les droits, il peut faire ce qu’il veut avec tous les fichiers. Nous allons voir dans la suite comment sont établis les droits pour les autres utilisateurs.

Changer les propriétaires

La commande pour changer d’utilisateur propriétaire est chown (change owner) :

chown momo fichier

ici momo devient le propriétaire du fichier

Pour changer de groupe on utilise la commande chgrp (change group) :

chgrp groupe1 fichier

ici groupe1 devient le nouveau groupe propriétaire du ficher.

Seul root peut changer le propriétaire d’un fichier. L’utilisateur et le groupe doivent exister lors du changement. Et le propriétaire doit appartenir au groupe pour changer un fichier de groupe. Seul root peut attribuer n’importe quel groupe à un fichier.

Droits

Lire les droits

On peut voir les droits d’un fichier/répertoire avec la commande ls -l :

-rw-r--r-- 2 login login 0 sept. 10 12:22 test

Ce sont les neuf symboles après le premier au début de la ligne ci-dessus.

Le premier symbole de la ligne ne donne pas d’information sur les droits mais sur le type de fichier :

Les neufs symboles suivants représentent donc les droits. Il existe trois droits disponibles :

Ces droits n’ont pas la même signification pour un répertoire ou pour un fichier.

Pour les fichiers :

Pour les répertoires :

Les neufs symboles des droits sont à lire par groupes de trois :

Ainsi dans l’exemple ci-dessus (rwxr-xr-x) qui correspond à un dossier on peut dire :

5) Créez un répertoire et un fichier dans /tmp. Quels sont les droits par défaut d’un répertoire d’une part et d’un fichier d’autre part ?

Pour un fichier : rw-rw-r--
Pour un répertoire : rwxrwxr-x

6) Indiquez clairement ci-dessous ou sont indiqués les droits du propriétaire, du groupe et des autres pour le fichier test.

-rw-r--r-- 2 login login 0 sept. 10 12:22 test

Pour le propriétaire : rw-
Pour le groupe : r--
Pour les autres : r--

Application des droits

Pour savoir quels droits s’appliquent à un utilisateur il faut analyser de gauche à droite :

7) Quel sont les droits des utilisateurs suivants sur le fichier tutu ?

-rwxr-xr-x 2 jean 1g4 4096 sept. 10 12:22 tutu
  • eleve : r-x (lecture, exécution)
  • jean : rwx (lecture, écriture, exécution)
  • thomas : r-x (lecture, exécution)

Changer les droits

Pour changer les droits on utilisera la commande chmod. Il est possible de changer les droits récursivement avec l’option -R.

Méthode 1

On indique à qui on veut appliquer le changement avec une lettre :

On indique si on veut ajouter (+), enlever (-) ou remplacer (=) les droits.

Puis on indique les droits qu’on veut appliquer : r, w ou x.

Enfin on indique le fichier/répertoire à qui s’applique le changement.

Exemple :

Pour ajouter le droit d’écriture pour le groupe au fichier toto :

chmod g+w toto

Pour donner uniquement le droit d’exécution à tout le monde au répertoire rep1 :

chmod a=x rep1

Il est possible de combiner ces commandes :

chmod ug+rw,o+x rep2

ajoute la lecture et l’écriture à l’utilisateur et au groupe et ajoute l’exécution aux autres.

8) Que fait la commande suivante ?

chmod u-x,g+x,o-rwx fichier

Elle enlève les droits d'exécution à l'utilisateur propriétaire sur le fichier fichier.
Elle donne les droits d'exécution au groupe propriétaire sur le fichier fichier.
Elle enlève les droits de lecture, d'écriture et d'exécution aux autres sur le fichier fichier.

9) Quelle commande doit-on utiliser pour passer les droits de ce fichier à rwxr-xr-- ?

-r-xrwxr-x 2 eleve eleve 85 oct. 25 02:36 mon_fichier
chmod u+w,g-w,o-x mon_fichier

Méthode 2

On peut de manière plus rapide, donner la valeur octale des droits. Pour cela, il suffit de considérer les droits comme un nombre binaire avec un 1 lorsqu’il y a un droit et 0 sinon. On remplace ensuite les groupes de trois bits par un nombre entre 0 et 7 : c’est l’octal.

Exemple : rwxr-xr-x → rwx r-x r-x → 111 101 101 → 755

Pour donner ces droits au répertoire rep1, on fera

chmod 755 rep1

Cette méthode est plus complexe à appréhender mais elle permet de gagner du temps lorsqu’on connaît les valeurs octales des droits les plus utilisés.

10) Reprendre la question 9 avec cette méthode.

chmod 754 mon_fichier

11) Que fait la commande ci-dessous ?

chmod 544 fichier.txt

Elle attribue les droits r-xr--r-- au fichier fichier.txt.