La commande chmod
permet de modifier les permissions associées à un fichier/répertoire.
Les commandes associées : chgrp
pour changer le groupe d'un fichier , chown
pour changer le propriétaire d'un fichier
Sous Unix, chaque utilisateur est identifié par un uid (user identifier) et fait partie d'au moins un groupe identifié par le gid (group identifier). Plusieurs utilisateurs peuvent appartenir au même groupe et un utilisateur peut appartenir à plusieurs groupes.
Les userids sont définis dans le fichier /etc/passwd
, comme par exemple
lambda:7G(Fi9dszOik:6001:35:utilisateur lambda, INFO21:/etinfo/users/sep2003/lambda:/usr/local/bin/bash
Les champs sont séparés par des ":"
lambda
7G(Fi9dszOik
6001
35
utilisateur lambda, INFO21
/etinfo/users/sep2003/lambda
/usr/local/bin/bash
Les groupes sont eux définis dans le fichier /etc/group
etinfo:x:35: binome:x:37:olivier,serge
Ici, etinfo
correspond au groupe 35 tandis que les utilisateurs olivier
et serge
font partie du groupe binome
Sous Unix, des permissions en lecture (r
pour read en anglais), écriture (w
pour write en anglais) et exécution (x
pour eXecute en anglais) sont associées à chaque fichier. Le propriétaire d'un fichier peut définir trois types de permissions :
Considérons un répertoire qui contient les fichiers suivants:
ls -l total 0 -rwxr-xr-x 1 olivier etinfo 0 Sep 19 12:56 ex1.out -rw------- 1 olivier etinfo 0 Sep 19 12:55 ex1.c
Dans cet exemple, seul l'utilisateur olivier
peut lire et modifier le fichier ex1.c
. Par contre, tout utilisateur peut lire et exécuter ex1.out
.
Pour donner à tout membre du groupe etinfo
la possibilité de lire ex1.c
, olivier
peut faire : chmod g+rw ex1.c
Pour empêcher tout utilisateur non membre du groupe etinfo
d'éxécuter ex1.out
, olivier
peut faire : chmod o-rx ex1.out
man chmod
Il est possible de restreindre l'accès à certains fichiers à des groupes d'utilisateurs particuliers. Dans l'exemple ci-dessus, pour restreindre l'accès au fichier ex1.c aux membres du groupe binome, il suffit de faire :
chgrp binome ex1.c chmod o-rw ex1.c chmod g+rw ex1.c
résultat de la commande ls après ces trois commandes :
-rw-rw-- 1 olivier binome 7 Sep 19 13:16 ex1.c