Article n° 20

En ligne: 7 mars 2010
Modifié le: 7 mars 2010
Popularité: 4
Nb visites: 2114

mots clés

LINUX

LINUX

Droit d’accès sur les fichiers et répertoires

Par: Chris

Que l’on soit simple utilisateur ou développeur, il peut être utile de savoir comment changer le propriétaire d’un répertoire ou d’un fichier ou d’avoir à définir les différents droits d’accès à certains utilisateurs. Ce sera le cas, si vous installez SPIP sur votre machine. Vous devrez par exemple, modifier les droits du répertoire IMG qui contient les images téléchargées, pour que votre site puisse fonctionner.

 1. Le principe

a) Types de droits

Le système Linux vous permet de définir un certain nombre de droits d’utilisations sur les fichiers et répertoires du système. Ces types étant symbolisés par une lettre.

Ces droits sont les suivants :

Type de droit symbole Fichiers Répertoire
Lecture r Permet de lire le fichier Permet de lire la liste des fichiers et sous-répertoire qu’il contient
Ecriture w Permet la modification du fichier Permet de créer un nouveau fichier ou ous-répertoire
Exécution x Permet l’utilisation de fichiers exécutables (programmes, scripts...) Autorise l’utilisateur à se positionner sur ce répertoire (devenir le répertoire courant)

b) Types d’utilisateurs

Linux définissant 3 types d’utilisateurs pour chaque fichier et répertoire, vous pourrez définir des droits spécifiques pour chacun d’eux. Ces types sont également symbolisés par une lettre.

Les types d’utilisateurs sont les suivants :

Type d’utilisateursymboleDescription
Propriétaire u(ser) Propriétaire du répertoire ou fichier (par défaut, celui qui l’a créé)
Groupe g(roup) Groupe auquel appartient le propriétaire
autres o(ther) Les autres utilisateurs

c) Représentation du type de fichiers

On va voir que lorsque le système affiche les différents droit d’un fichier ou répertoire (commande ls -l), ce dernier commence par afficher le type de fichier ou répertoire également symbolisé par une lettre.

type symbole Observation
Fichiers standards -
répertoire d
lien symbolique l simples liens sur des fichiers existant
Fichiers types caractères c fichiers spéciaux ou systèmes
Fichiers mode bloc b Fichiers représentant des périphériques
tubes nommés (pipe) p rarement utilisés
sockets s connexions réseau

Les principaux types que vous rencontrerez sont les répertoires, fichiers et liens symboliques, les autres étant des fichiers spéciaux intéresseront surtout les programmeurs systèmes.

d) Représentation des droits

Les droits d’un fichier seront donc représentés par une suite de lettres. Ces lettres sont affichés dans l’ordre suivant :

type fichierdroit propriétairedroit groupedroit autre utilisateurs
- r w x r w x r w x

Si à l’emplacement du droit se trouve le caractère « - » cela indique que le droit n’est pas autorisé pour ce type d’utilisateur.

Exemple :

drwxr-xr--

indique qu’il s’agit d’un répertoire (d) dont :

- le propriétaire a le droit de lecture, modification et exécution (rwx)
- le groupe a le droit de lecture et d’exécution (r-x)
- les autres utilisateurs n’ont des droits que de lecture (r—)

 2. Afficher les droits d’un fichier

Pour afficher les différents droits d’un fichier, vous utiliserez la commande ls avec l’option -l.

Exemple :

ls -l
drwxr-xr-x  2 christophe christophe 4096 2009-07-18 18:51 Public
drwxr-xr-x  3 christophe christophe 4096 2009-07-19 19:21 Radios
drwxr-xr-x  4 christophe christophe 4096 2009-09-15 22:01 resources
drwxr-xr-x  3 christophe christophe 4096 2009-12-15 20:53 sauvegardes
-rw-r--r--  1 christophe christophe 1855 2009-07-18 18:52 screen-configurations.xml
drwxr-xr-x  2 christophe christophe 4096 2010-01-08 17:25 Téléchargement

 3. Modifier les droits d’un fichier

Pour modifier les droits d’un fichiers vous utiliserez la commande chmod.

Cette commande peut être utilisée selon 2 syntaxes : soit à l’aide de lettres, soit à l’aide de chiffres.

a) Première syntaxe : utilisation de lettres

chmod <type_utilisateur><signe><permission> <nom_fichier>

avec :

- type utilisateur : peut être une ou plusieurs lettres suivantes : u (user) ou propriétaire, g (group), o (other) ou a (all), l’ensemble des utilisateurs.
- le signe : + ou – pour ajouter ou supprimer le droit
- permission : type de permission : r, w ou x

Exemple avec le fichier suivant :

-rw-r--r-- 1 christophe christophe 28 2010-01-09 09:46 test.txt

Si je veux donner les droits d’écriture à l’ensemble de mon groupe d’utilisateurs je tape :

chmod g+w test.txt

se qui donne :

-rw-rw-r-- 1 christophe christophe 28 2010-01-09 09:46 test.txt

b) Seconde syntaxe : utilisation d’une codification numérique :

chmod <valeur numérique à 3 chiffres> <nom fichier>

La valeur numérique est basée sur un nombre octal dont la codification est la suivante :

- 1 : droit d’exécution
- 2 : droit d’écriture
- 4 : droit de lecture

Pour indiquer les droits d’un fichier, vous devrez donc additionner les chiffres correspondants.

Exemple : si vous désirez donner des droits de lecture et d’exécution sur un fichier, vous devrez donc spécifier : 5 ( 1 + 4 = 5) pour le type donné. En réalisant cette opération pour les 3 types d’utilisateurs vous obtenez un nombre de 3 chiffres que vous passez en paramètres à la commande chmod.

Voici un tableau récapitulatif donnant les valeurs possibles en fonction des droits :

valeur binaire valeur octale Droits
r w x valeur
0 0 0 0 Aucun
0 0 1 1 exécution
0 1 0 2 écriture
0 1 1 3 écriture + exécution
1 0 0 4 lecture
1 0 1 5 lecture + exécution
1 1 0 6 lecture + écriture
1 1 1 7 lecture + écriture + exécution

Si nous reprenons l’exemple de notre fichier test.txt et si nous désirons donner tous les droits au propriétaire et au groupe mais lecture seule pour les autres utilisateurs, il suffit de taper la commande suivante :

chmod 774 test.txt

Nous pouvons vérifier avec la commande ls -l :

-rwxrwxr-- 1 christophe christophe 28 2010-01-09 09:46 test.txt

 4. Changer le propriétaire ou groupe d’un fichier

Un autre moyen d’agir sur les droits d’accès d’un fichier ou répertoire est d’en changer le propriétaire ou le groupe. Pour cela, il suffit d’utiliser l’une des 2 commandes chown ou chgrp.

a) La commande chown

La syntaxe est la suivante :

chown [option] nom_propriétaire[:nom_groupe] nom_fichier

On voit que cette commande nous permet de changer le groupe en même temps que le propriétaire sans avoir à utiliser la commande chgrp.

b) La commande chgrp

La syntaxe est la suivante :

chgrp [option] nom_groupe nom_fichier

 5. Pour conclure

Il y a d’autres types de permissions qui ne sont pas abordées car moins indispensables pour un simple utilisateur, ce sont les bits spéciaux ainsi que d’autres méthodes qui permettent une gestion des droits d’accès fondée sur des listes d’autorisations, les ACL. Il existe également une commande qui permet de définir et afficher les attributs par défaut des fichiers lors de leurs création. Il s’agit de la commande umask. Là encore, vous ne devriez pas avoir besoins de cette commande en tant que simple utilisateur.

SPIP |