Lantsei.lesCigales.ORG

Gestion des droits

Lister les droits

Pour lister les droits dans un terminal, on utilise la commande lsavec l'option -l et -d pour un dossier.

Droit d'accès aux fichiers

À chaque fichier est associé un ensemble d'indicateurs précisant les droits d'accès au fichier.

1 attribut pour désigner le type :

- : fichier ordinaire
d : fichier répertoire
c : fichier spécial, périphérique accédé en mode caractère
b : fichier spécial, périphérique accédé en mode bloc
p : tube nommé
l : lien symbolique
s : socket

9 attributs de protection :

w (write) : autorisation d'écriture
r (read) : autorisation de lecture
x (execute) : autorisation d'exécution

2 attributs pour des droits spéciaux

s (pour +x) et S (pour -x) : autorisations spéciales SetUID et SetGID
t (pour +x) et T (pour -x) : autorisation spéciale Sticky bit Exemple :

ls -l /etc/passwd

Nous donne :

-rw-r--r-- 1 root root 1224 mar 29 16:02 /etc/passwd

Dans cet exemple, dans l'ordre de gauche à droite :

- = type de fichier dans notre cas c'est un fichier ordinaire.
rw- = permission du propriétaire dans ce cas droit de lecture et d'écriture.
r-- = permission du groupe dans ce cas droit de lecture.
r-- = permission des autres dans ce cas droit de lecture.

Modification des Droits : CHOWN

chown propriétaire:groupe <fichier>

La commande chown peut être appliquée en une seule commande sur plusieurs fichiers et répertoires :

chown propriétaire:groupe <fichier>

La commande chown peut être appliquée récursivement sur le contenu d'un répertoire :

chown -R propriétaire:groupe <répertoire>

Exemples :

ls -l agenda.txt

Nos donne :

-rw-r--r--   1   utilisateur groupe <fichier>

Modifier le groupe :

chown  utilisateur:groupe <fichier>

Modifier le propriétaire :

chown  utilisateur <fichier>

Modifier le groupe :

chown  :groupe <fichier>

On peut indiquer l’utilisateur et le groupe par :

chown utilisateur:groupe <fichier>

Modification des permissions : CHMOD

chmod <-R> [u g o a] [+ - =] [r w x (X) s t] fichier(répertoire)

-c, --changes : comme verbeux (-v) mais n'affiche que les changements effectués.
-f, --silent, --quiet : supprime la plupart des messages d'erreur.
-v, --verbose : mode verbeux. Affiche la liste de tous les fichiers en cours de modification.
-R, --recursive : change les modes de tous les fichiers dans les sous-répertoires de manière récursive.
--no-preserve-root : ne traite pas / (la racine du système de fichiers) spécialement (option par défaut).
--preserve-root: échec du traitement récursif (-R) sur / (la racine du système de fichiers).

Modes

Pour chaque fichier donné, les permissions s'appliquent au propriétaire du fichier (code u comme user), au groupe d’utilisateurs du fichier (g comme group) ou aux autres utilisateurs (o comme others). Pour appliquer les modifications à tous en une seule fois, on utilise le code a comme all :

u propriétaire (user)
g groupe (group)
o les autres (others)
a tous (all)

Les modes peuvent être spécifiés de deux façons, avec des lettres ou avec des nombres en octal. Pour les lettres, il existe les opérateurs de changement d'état + et - pour ajouter ou retirer un type de droit aux droits courants, et l'opérateur = pour les écraser. Pour l'octal, il faut additionner les nombres pour chaque type de possesseur.

Les permissions sont (valeurs octales entre parenthèses) :

r (4) : autorisation de lecture
w (2) : autorisation d'écriture
x (1) : autorisation d'exécution

La permission d'exécution régit également l'accès à un répertoire : si l'exécution n'est pas autorisée sur un répertoire, on ne peut pas faire un chdir (commande cd) sur ce répertoire.

correspondances de représentation des droits

droit valeur alphan° valeur octale valeur binaire
aucun droit --- 0 000
exécution seulement --x 1 001
écriture seulement -w- 2 010
écriture et exécution -wx 3 011
lecture seulement r-- 4 100
lecture et exécution r-x 5 101
lecture et écriture rw- 6 110
tous les droits rwx 7 111