Description

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

Les utilisateurs et les groupes

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 ":"

  • login : lambda
  • mot de passe (crypté) : 7G(Fi9dszOik
  • userid : 6001
  • groupid : 35
  • description : utilisateur lambda, INFO21
  • répertoire de login : /etinfo/users/sep2003/lambda
  • shell par défaut : /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

Les permissions des fichiers

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 :

  • les permissions qui s'appliquent au propriétaire (user en anglais) du fichier
  • les permissions qui s'appliquent à un membre du même groupe (group en anglais) que le propriétaire
  • les permissions qui s'appliquent à n'importe quel utilisateur (others en anglais)

Exemples

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

Informations complémentaires

Trucs et astuces

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