# 🔨 La gestion des droits sous GNU/Linux

Dans 
Publié 2021-11-03

Un système d'exploitation GNU/Linux a trois types d'utilisateurs et trois type de droits distincts. Cette page explique et présente les options les plus souvent utilisées pour des scripts et plus précisément la gestion de dossiers et fichiers de sites web sur un serveur Apache sous Linux.

Pour un complément d'information vous pouvez consulter les documentations d'ubuntu-fr.org:


# 📍 La commande CHmod

Les types d'utilisateurs:

  • Le propriétaire du fichier (user)
  • Le groupe du propriétaire du fichier (group)
  • Les autres utilisateurs, ou encore le reste du monde (others)

Les types de droits:

  • r : droit de lecture (read)
  • w : droit d'écriture (write)
  • x : droit d'exécution (eXecute)

# 🧮 Correspondances des droits en binaire/octale et leurs significations

Position Binaire Valeur octale Droits Signification
000 0 - - - Aucun droit
001 1 - -x Exécutable
010 2 - w - Ecriture
011 3 - w x Ecrire et exécuter
100 4 r - - Lire
101 5 r - x Lire et exécuter
110 6 r w - Lire et écrire
111 7 r w x Lire écrire et exécuter

Ainsi pour modifier les droits de façon octale, la meilleure façon pour être certain du résultat, est d'additionner ceux-ci.

Par exemple : changer les droits du fichier "monscript" pour que je sois (moi le propriétaire) le seul à pouvoir le modifier, que les personnes de mon groupe puissent le lire comme l'exécuter et que le reste du monde puisse uniquement l'exécuter :

Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r - x - - x
Position Binaire 111 101 001
Valeur Octale 7 5 1

Modifier les droits sur monscript :

sudo chmod 751 monscript

# 📚 Récapitulatif des différentes valeurs possibles fréquemment utilisées

Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w - r - - r - -
Position Binaire 110 100 100
Valeur Octale 6 4 4
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w - r w - r w -
Position Binaire 110 110 110
Valeur Octale 6 6 6
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x - - - - - -
Position Binaire 111 000 000
Valeur Octale 7 0 0
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x - - - r - x
Position Binaire 111 000 101
Valeur Octale 7 0 5
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r - x r - x
Position Binaire 111 101 101
Valeur Octale 7 5 5
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r w - r - -
Position Binaire 111 110 100
Valeur Octale 7 6 4
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r w x r - -
Position Binaire 111 111 100
Valeur Octale 7 7 4
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r w x r - x
Position Binaire 111 111 101
Valeur Octale 7 7 5
Type d'utilisateurs Propriétaire Groupe Les autres
Droits r w x r w x r w x
Position Binaire 111 111 111
Valeur Octale 7 7 7

Pour modifier les droits d'un répertoire et de ses sous répertoires, utilisez la fonction récursive -R
Modifier le répertoire /var/www/html/monsite avec les droits modifiés en 755:

sudo chmod -R 755 /var/www/html/monsite

# 📋 Afficher les droits d'un répertoire

Les droits des fichiers d'un dossier peuvent être affichés par la commande "ls -l"

Afficher les droits des fichiers du dossier /var/www/html/monsite:

ls -l /var/www/html/monsite

# 📑 Format des droits

Le format des droits d'accès est une liste de 10 symboles.

Le 1er symbole est soit un "-" soit un "l" soit un "d", ils indiquent s'il s'agit:
d'un fichier (-)
d'un lien (l)
ou d'un dossier (d).

Ensuite suivent les trois groupes des trois symboles des permissions (rwx-). Par exemple:
-rw-r--r-- signifie que c'est un fichier dont les droits sont définis 644
drwx------ signifie que c'est un dossier dont les droits sont définis en 700
lrwxrwxrwx signifie que c'est un lien dont les droits sont définis en 777


# ✔️ L'avantage du CHown

Pour éviter des chmod 666 (ou pire encore des 777), CHown permet de modifier le propriétaire d'un fichier.

Si vous souhaitez vous réaproprier les droits sur l'ensemble d'un dossier et que vous êtes l'utilisateur "martin":

sudo chown -R martin /chemin/vers/dossier

Récupérer les droits sur l'ensemble du dossier:

sudo chmod -R 755 /chemin/vers/dossier