La série de commandes présentée ici est utilisée pour changer le propriétaire ou le groupe propriétaire d'un fichier ou ses droits d'accès. Les différents droits d'accès sont présentés dans le chapitre « Concepts de base des systèmes UNIX ».
La syntaxe de la commande chown est la suivante :
chown [options] <user[:group]> <file|directory> [file|directory...]
Entre autres options, vous trouverez celles-ci :
-R
:
récursif. Change le propriétaire de tous les fichiers et
sous-répertoires d'un répertoire donné ;
-v
: mode verbeux. Décrit toutes les actions
effectuées par chown ; indique quels fichiers ont
changé de propriétaire à la suite de la commande ainsi que
ceux qui demeurent inchangés ;
-c
: comme -v
, mais ne mentionne que
les fichiers pour lesquels il y a eu un changement.
chown nobody
/shared/book.tex : change le propriétaire du
fichier /shared/book.tex
au profit de
nobody
;
chown
-Rc reine:musique *.mid concerts/ : donne la
propriété de tous les fichiers se terminant par
.mid
dans le répertoire courant et de tous les
fichiers et sous-répertoires du répertoire
concerts/
à reine
et au
groupe musique
. Cette commande ne mentionne que
les fichiers affectés par la commande.
La commande chgrp (CHange GRouP) ne vous laisse changer que le groupe propriétaire d'un fichier ou d'un groupe de fichiers. Sa syntaxe est très semblable à celle de la commande chown :
chgrp [options] <group> <file|directory> [file|directory...]
Les options de cette commande sont les mêmes que pour chown, et elle est utilisée de façon très similaire. Ainsi, la commande :
chgrp disk /dev/hd*
attribue au groupe
disk
tous les fichiers du répertoire
/dev
dont le nom commence par
hd
.
La commande chmod a une syntaxe bien particulière. Sa syntaxe générale est :
chmod [options] <change mode> <file|directory> [file|directory...]
mais ce sont les différentes formes que peut prendre le changement de mode qui la rendront plus spécifique. Ceci peut se produire de deux façons :
en
octal. Les droits d'accès de l'utilisateur propriétaire
correspondent alors à des chiffres de la forme
<x>00
, où <x>
correspond au droit assigné : 4 pour lecture, 2 pour
écriture, 1 pour exécution. De même, les droits d'accès du
groupe propriétaire sont de la forme
<x>0
et ceux des
« autres » sont de la forme x
.
Pour obtenir le chiffre correct, il suffira d'additionner les
droits d'accès assignés. Ainsi, les permissions
rwxr-xr--
correspondent à 400+200+100
(droits d'accès de l'utilisateur propriétaire,
rwx
) +40+10 (droits d'accès du groupe,
r-x
) +4 (droits d'accès des autres,
r--
) = 754. Les droits d'accès
sont ainsi exprimés de manière absolue : les droits
d'accès précédents sont remplacés de façon
inconditionnelle ;
à l'aide de certaines expressions. Les
droits d'accès sont ici indiqués par une suite
d'expressions séparées par des virgules, une expression
étant de la forme
[catégorie]<+|-|=><droits
d'accès>
.
La catégorie peut être une combinaison de :
Si aucune catégorie n'est
spécifiée, le changement s'applique à toutes les catégories. Un
+
attribue un droit, un -
le
retire et un =
établit la permission à la
valeur spécifiée. Pour finir, les permissions sont définies par une
ou plusieurs des lettres suivantes :
Les options principales sont très similaires à celles de chown ou chgrp :
chmod -R o-w
/shared/docs : enlève de façon récursive le
droit d'écriture aux « autres » sur tous les
fichiers et sous-répertoires du répertoire
/shared/docs/
;
chmod -R og-w,o-x
prive/ : enlève de façon récursive le droit
d'écriture pour le groupe et les autres sur tout le répertoire
prive/
, et retire le droit d'exécution
pour les autres ;
chmod -c 644
divers/fichier* : change les droits d'accès
de tous les fichiers du répertoire
divers/
dont les noms commencent par
fichiers
en
rw-r--r--
(droit de lecture pour tout le
monde et droit d'écriture pour le propriétaire du fichier
seulement). Cette commande ne mentionne que les fichiers
affectés par l'opération.