Le tutoriel suivant permet de comprendre et gérer les droits des fichiers de votre système sous Linux.

Introduction

Commençons par afficher un dossier afin de visualiser les éléments que les deux commandes chmod et chown permettent de modifier :

ls -l /etc/apache2/
total 76
-rw-r--r--  1 root root  7151 Jan 29 16:06 apache2.conf
drwxr-xr-x+ 2 root root  4096 Jan 25 17:57 conf-available
drwxr-xr-x+ 2 root root  4096 Jan 23 12:14 conf-enabled
-rw-r--r--  1 root root  1782 Jul  5  2016 envvars
-rw-r--r--  1 root root 31063 Jul  5  2016 magic
drwxr-xr-x+ 2 root root  8192 Jan 25 17:45 mods-available
drwxr-xr-x+ 2 root root  4096 Jan 29 15:05 mods-enabled
-rw-r--r--  1 root root   320 Jul  5  2016 ports.conf
drwxr-xr-x+ 2 root root  4096 May 18 16:40 sites-available
drwxr-xr-x+ 2 root root    71 May 18 11:26 sites-enabled

La première colonne nous indique si nous visualisons un fichier (-), un lien (l) ou un dossier (d) ainsi que leurs droits (drwxr-xr-x+).
Les colonnes suivantes nous indique le propriétaire, le groupe, la taille, la date de modification et le nom.

Les droits sont définis par les caractères 2 à 10 comme l’indique le tableau suivant :

rwxr-xr--
 \ /\ /\ /
  v  v  v
  |  |  droits des autres utilisateurs (o)
  |  |
  |  droits des utilisateurs appartenant au groupe (g)
  |
 droits du propriétaire (u)

chmod

La commande chmod permet de modifier les droits d’un fichier/dossier.
Les droits se modifie soit en octal soit de façon individuelle.
En octal, la commande chmod est suivi de 3 chiffres soit le 1er pour le propriétaire, le second pour le groupe et le dernier pour les autres utilisateurs selon la règle suivante :

  • 0 : – – – (aucun droit)
  • 1 : – – x (exécution)
  • 2 : – w – (écriture)
  • 3 : – w x (écriture et exécution)
  • 4 : r – – (lecture seule)
  • 5 : r – x (lecture et exécution)
  • 6 : r w – (lecture et écriture)
  • 7 : r w x (lecture, écriture et exécution)

 

### User en rwx, Group en rx et Other en rx
chmod 755 fichier.txt
### User en rw, Group en r et Other en aucun droit
chmod 640 fichier.txt

En individuel, on indique l’entité concernée User (u), Group (g), Other (o) ou Tous (a) et l’action d’ajout (+) ou de suppression (-) de droit.

### Ajout du droit w à User
chmod u+w fichier.txt
### Retrait du droit rx à Group
chmod g-rx fichier.txt
### Ajout rwx à User, Ajout rx et retrait w à Group, Ajout r et retrait wx à Other
chmod u+rwx,g+rx-w,o+r-wx fichier.txt
### Ajout rw à tous les utilisateurs
chmod a-rw fichier.txt

Argument permettant d’appliquer la modification au dossier en mode récursif.

Les droits les plus courant dont :

rw----    fichier en lecture/écriture seul pour le créateur.
rw-rw-r-- fichier en lecture pour tout le monde, modifiable uniquement par le créateur ou une personne de sont groupe et lu par tout le monde.
rwxrwxr-x script  pouvant être éxécuté uniquement par le créateur ou une personne de sont groupe et lu par tout le monde.
drwxr-xr-x répertoire pouvant être modifié uniquement par le créateur et être lu et parcouru  par tout le monde.

Notez que le droit rw-rw-rw- est très fortement déconseillé, il est préférable de se limiter à rw-rw-r—

Un générateur de permissions chmod est disponible en fin de tutoriel.


chown / chgrp

La commande chown permet de modifier le propriétaire du fichier/dossier.
Seul le propriétaire et l’utilisateur root peuvent modifié les droits d’un fichier/dossier.
Il est également possible de modifier le propriétaire et le groupe simultanément.
La commande chgrp permet de modifier le groupe du fichier/dossier.

ls -l | grep fichier.txt
-rw-r--r--  1 root root  7151 May 22 16:06 fichier.txt

chown nouveau_propriétaire fichier.txt
ls -l | grep fichier.txt
-rw-r--r--  1 nouveau_propriétaire root  7151 May 22 16:06 fichier.txt

chgrp nouveau_groupe fichier.txt
ls -l | grep fichier.txt
-rw-r--r--  1 nouveau_propriétaire nouveau_groupe  7151 May 22 16:06 fichier.txt

chown root:root fichier.txt
ls -l | grep fichier.txt
-rw-r--r--  1 root root  7151 May 22 16:06 fichier.txt

Argument permettant d’appliquer la modification au dossier en mode récursif.


Générateur

Afin de modifier vos permissions plus rapidement, vous pouvez utiliser le générateur suivant :