La série de commandes présentée ici est utilisée pour changer le propriétaire ou 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 dans le répertoire courant se terminant par .mid 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 + appose un droit d'accès, un - le retire et un = établit la permission. Pour finir, les droits d'accès sont définis 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.