La commande chmod
chmod [options] <fichiers/répertoires>
La commande chmod permet de configurer l'accès aux fichiers et aux répertoires.
Pour une liste exhaustive des options et des fonctionnalités, consultez le manuel de la commande (man chmod).
Description
Avec chmod, il est possible de déterminer quels usagers peuvent accéder à vos fichiers et ce qu'il leur est permis de faire.
La commande reconnaît 4 ensembles d'usagers :
- user (u), l'usager propriétaire;
- group (g), le groupe de l'usager propriétaire;
- other (o), tous les usagers, sauf l'usager propriétaire et les membres de son groupe;
- all (a), tous les usagers, sans exception.
N.B. : L'usager propriétaire est le créateur du fichier ou du répertoire.
La commande reconnaît 3 types d'accès aux fichiers :
- read (r), lecture;
- write (w), écriture;
- execute (x), exécution.
Pour vérifier l'accès à un fichier, il suffit d'utiliser la commande ls :
ls -al <fichier>
Par exemple, la commande pourrait vous retourner
-rw-r--r--. 1 USAGER etudmat 197 Dec 25 00:00 fichier
On apprend ainsi que USAGER est l'usager propriétaire du fichier et etudmat, son groupe. L'information à l'extrême gauche est organisée comme ci-dessous :
USAGER a donc la permission de lire et d'écrire, mais pas exécuter, le fichier. Les usagers du groupe etudmat et les « autres » peuvent seulement lire le fichier. Notons que l'absence de permission est signalée par un trait « - ».
Les nouveaux fichiers créés au DMS auront le niveau d'accès décrit dans l'exemple précédent. Les nouveaux répertoires affichent quant à eux les accès suivants :
drwxr-xr-x. 2 USAGER etudmat 4096 Dec 25 00:00 répertoire
Pour modifier l'accès à un fichier ou un répertoire, il faut utiliser la commande chmod :
chmod [ugoa][+-=][rwx] <fichier/répertoire>
Exemples
chmod a-wx fichier.tex
Retire à tous les usagers la possibilité de modifier (écrire) et d'exécuter ce fichier.
chmod o+rw gaffe.txt
Ajoute la permission aux usagers « autres » de lire et modifier ce fichier (ceci n'est pas conseillé!).
chmod u=r final.txt
L'usager propriétaire n'est autorisé qu'à lire le fichier final.txt.
En bref, le symbole '=' sert à fixer le type d'accès d'un ensemble d'usagers alors que les symboles '+' et '-' servent, respectivement, à ajouter et à retirer un type d'accès.
Syntaxe chiffrée
Il existe une autre syntaxe de chmod utilisant une valeur numérique des niveaux et des types d'accès. Par exemple,
chmod ug=rw toto.txt
est équivalent à
chmod 660 toto.txt
Cette syntaxe 'chiffrée ne peut servir qu'à fixer les d'accès de tous les niveaux d'un seul trait: il n'est pas possible de l'utiliser pour ajouter ou retirer un accès à un niveau. Le premier chiffre donne les accès de l'usager, le deuxième les accès du groupe et, le troisième, les accès des autres. La valeur de chaque chiffre est la somme d'un ou plusieurs chiffres correspondant à des accès différents:
- 4 : lecture
- 2 : écriture
- 1 : exécution
- 0 : aucun