Vous êtes sur la page 1sur 4

Les droits d’accès sous linux

Dans un système GNU/Linux, tout fichier se voit attribuer des droits pour 3 identités :

 le propriétaire (user) - c'est l'utilisateur qui a créé le fichier ou l'utilisateur que root a
désigné comme propriétaire_
 le groupe (group) -qui n'est pas forcément le groupe du propriétaire-
 les autres (others) -ceux qui ne font pas partie du groupe-

Grâce au listage long format (ls -l) du contenu d’un fichier, on peut afficher les droits d’accès
de tout fichier. Ces droits sont attribués séparément pour chacune des identités décrites ci-
dessus. On perçoit trois droits :

 r (read) : droit de lecture


 w (write): droit d’écriture
 x (execute) : droit d’exécution

L'affichage des droits est représenté par une chaîne de neuf caractères, précédée d'un caractère,
représentant le type du fichier. Ces neuf caractères, regroupés 3 par 3 (rwx rwx rwx), définissent
les droits des 3 identités respectivement le propriétaire, le groupe et les autres. Pour chaque droit
existant on voit une lettre parmi r, w ou x et, si un droit n'existe pas, on utilise le tiret (à ne pas
confondre avec le 1er tiret qui signifie - fichier régulier). En effet, lors de l’affichage, un
symbole s’affiche en début de ligne ; on perçoit trois symboles définissant :

 - : fichier régulier
 d (directory): répertoire
 l (link): lien symbolique

Ainsi, l’affichage est effectué selon la disposition suivante :

Symbol Propriétaire Groupe Autres

Exemple : -rwxr-x--- Ce qui signifie :

 qu'il s'agit d'un fichier régulier ( le 1er caractère est un tiret -)


 que le propriétaire a tous les droits (ReadWriteExecute donc Lire, Ecrire et Exécuter)
 que les membres du groupe ont les droits de lecture (le 1er caractère est r) et d'exécution(le
3ème caractère est x), en revanche ils n'ont pas le droit d'écriture puisque le 2ème caractère
est un tiret -
 que les autres n'ont aucun droit ; ils ne peuvent ni lire, ni écrire, ni exécuter le fichier (les 3
caractères sont des tirets -).

Chmod :
La commande chmod (CHangeMODe) permet de définir et de changer les droits d'accès d'un
fichier ou un ensemble de fichiers. Parmi les options de la commande chmod, les deux les plus
importants sont:

 v pour verbose (affichage sur la sortie standard STDOUT du résultat de la commande)


 R traiter les répertoires de façon récursive (application de la commande à l'arborescence
entière du répertoire en question)

Il y a deux modes d'utilisation de la commande chmod :

 mode littéral
 mode numérique

1.1. Mode Littéral :


Il s'agit de l'utilisation des lettres r, w et x pour spécifier les droits voulus. La nouveauté
c'est qu'on va utiliser aussi des lettres pour désigner les identités dont nous avons parlé plus
haut : le propriétaire, le groupe et les autres. chmod utilise la notation suivante :
 u - pour le propriétaire (user)
 g - pour le groupe (group)
 o- pour les autres (other)
 a - pour tous (all)

Une autre notation sera utilisée pour attribuer et/ou retirer des droits.

 + (plus) pour attribuer


 - (moins) pour retirer
 = (égale) pour fixer l'accès exact

Exemples:

- « chmod go-wx fichier » : on retire (-) pour les membres du groupe (g) et les autres
(o) les droits d'écriture (w) et d'exécution (x).
- plusieurs ensembles d'opérateurs et types d'accès peuvent être utilisés :
« chmod o+r-w fichier » : pour les autres (o), on attribue (+) le droit de lecture (r)
mais on retire le droit d'écriture (w).

Aussi, les chaînes peuvent être combinées en les séparant par des virgules :
- « chmod u+x,og-w fichier » on attribue (+) le droit d'exécution (x) pour le
propriétaire (u) et on retire (-) les droits d'écriture (w) pour les membres du groupe
(g) et les autres (o).

NB : Il n'y a aucun espace entre les chaînes séparées par les virgules

Remarques :

 lorsque l'identité est omise, c'est la valeur a (tous) qui sera utilisée

chmod +w fichier

 le type d'accès peut être omis si le signe égal (=) est utilisé pour supprimer tous les accès

chmod o= fichier

1.2. Mode numérique :


En premier lieu, un numéro est attribué à chacun des droits selon l’identité destinée ; ces attributs
sont décrits dans le tableau suivant :

Propriétaire Groupe autres


r w x r w x r w x
400 200 100 40 20 10 4 2 1

Pour comprendre l'utilisation de chmod avec la façon numérique un exemple sera beaucoup plus
parlant :

Nous voulons établir pour un fichier les droits suivants :

- propriétaire : lecture + écriture + exécution = 400 + 200 +100 = 700

- groupe : lecture + exécution = 40 + 10 = 50

- les autres : lecture + exécution = 4 + 1 = 5


 Au total ça donne 700 + 50 + 5 = 755

Maintenant nous allons utiliser le résultat obtenu avec chmod :

chmod 755 fichier

On peut également changer les droits d’accès de tous les fichiers contenus dans un répertoire
avec l’option –R :

chmod -R <droits> répertoire

Umask:
La commande umask permet de définir les droits par défaut d'un fichier ou répertoire à sa création.
Autrement dit elle indique les droits qu'il faut retirer lors de leur création. La commande umask, à
l'instar de la commande chmod (façon numérique) prend en argument 3 chiffres, qui cette fois
représentent les droits que nous ne voulons pas accorder.

umask 0022 fichier

Ainsi, le umask est défini à 022 et un fichier créé se voit attribuer, par défaut, les droits:

(666- 022=644)

A savoir que la durée de vie de la commande umask est limité à la session shell en cours. Pour une
durée permanente voir les fichiers de configuration de votre shell. Pour le shell bash, on peut utiliser
le fichier ~/.bashrc

chown
Pour changer le propriétaire d'un fichier il faut utiliser la commande chown (Change OWNer) :

chown usager fichier

chgrp

Pour changer le groupe d'un fichier , on utilise la commande (CHange Group):

chgrp groupe fichier

On peut également changer le propriétaire et le groupe en utilisant une seule commande chown:

chown usager:groupe fichier