Gestion des droits
Lister les droits
Pour lister les droits dans un terminal, on utilise la commande ls
avec 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
) etS
(pour-x
) : autorisations spécialesSetUID
etSetGID
t
(pour+x
) etT
(pour-x
) : autorisation spécialeSticky 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 |