Aller au contenu principal
Xsec

Gérer les permissions sous GNU/Linux

Publié le 6 min de lecture

Mis à jour le

Astuce

L’intégralité de cet article est rédigée par Olivier Pusadoux du site Les hirondelles du net.

Un système d’exploitation GNU/Linux compte trois types d’utilisateurs et trois types de permissions distincts. Cette page présente les options les plus courantes pour les scripts, en se concentrant sur la gestion des dossiers et fichiers d’un site web sur un serveur Apache sous GNU/Linux.

Pour des informations complémentaires, vous pouvez consulter la documentation d’ubuntu-fr.org :

La commande chmod

Types d’utilisateurs :

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

Types de permissions :

  • r : permission de lecture
  • w : permission d’écriture
  • x : permission d’exécution

Correspondances binaire/octal des permissions et leur signification

Position binaireValeur octalePermissionsSignification
0000- - -Aucune permission
0011- -xExécutable
0102- w -Écriture
0113- w xÉcriture et exécution
1004r - -Lecture
1015r - xLecture et exécution
1106r w -Lecture et écriture
1117r w xLecture, écriture et exécution

Pour modifier les permissions au format octal, la meilleure façon d’être certain du résultat est d’additionner ces valeurs.

Par exemple : modifier les permissions du fichier « myscript » pour que moi seul (le propriétaire) puisse le modifier, que les personnes de mon groupe puissent le lire et l’exécuter, et que tous les autres puissent seulement l’exécuter :

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr - x- - x
Position binaire111101001
Valeur octale751

Modifier les permissions sur myscript :

Fenêtre de terminal
sudo chmod 751 myscript

Résumé des différentes valeurs couramment utilisées

Note

644 - Lecture, écriture pour le propriétaire / Lecture pour les autres. Valeur par défaut d’un fichier sous GNU/Linux.

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w -r - -r - -
Position binaire110100100
Valeur octale644
Danger

666 - Lecture, écriture pour tout le monde, non recommandé

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w -r w -r w -
Position binaire110110110
Valeur octale666
Note

700 - Lecture, écriture, exécution uniquement pour le propriétaire Valeur par défaut d’un répertoire sous GNU/Linux

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w x- - -- - -
Position binaire111000000
Valeur octale700
Note

705 - Le propriétaire a toutes les permissions / Groupe aucune / Autres lecture et exécution Recommandé par certains hébergeurs pour le répertoire du site s’il est inaccessible (message : « Forbidden… »)

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w x- - -r - x
Position binaire111000101
Valeur octale705
Note

755 - Le propriétaire a toutes les permissions / Autres lecture et exécution Utile pour les scripts par exemple et certains fichiers de site web

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr - xr - x
Position binaire111101101
Valeur octale755
Note

764 - Toutes les permissions pour le propriétaire / Lecture, écriture pour le groupe / Lecture seule pour les autres Parfois utile pour les fichiers d’un site web appartenant au groupe www-data

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr w -r - -
Position binaire111110100
Valeur octale764
Note

774 - Toutes les permissions pour le propriétaire et le groupe / Lecture seule pour les autres Utile pour certains fichiers sur un serveur de développement local

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr w xr - -
Position binaire111111100
Valeur octale774
Note

775 - Toutes les permissions pour le propriétaire et le groupe / Lecture et exécution pour les autres Très pratique pour simplifier la gestion d’un site web en développement sur un serveur local (dans le dossier media)

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr w xr - x
Position binaire111111101
Valeur octale775
Danger

777 - Toutes les permissions pour tout le monde Fortement déconseillé ! Mais peut être nécessaire pour le cache d’un CMS en local (par exemple) sur un serveur LAMP

Type d’utilisateurPropriétaireGroupeAutres
Permissionsr w xr w xr w x
Position binaire111111111
Valeur octale777

Pour modifier les permissions d’un répertoire et de ses sous-répertoires, utilisez la fonction récursive -R Modifier le répertoire /var/www/html/mysite avec les permissions passées à 755 :

Fenêtre de terminal
sudo chmod -R 755 /var/www/html/mysite

Afficher les permissions d’un répertoire

Les permissions des fichiers d’un répertoire peuvent être affichées avec la commande « ls -l »

Afficher les permissions des fichiers du répertoire /var/www/html/mysite :

Fenêtre de terminal
ls -l /var/www/html/mysite

Format des permissions

Le format des permissions est une liste de 10 symboles.

Le 1er symbole est soit « - », soit « l », soit « d », indiquant s’il s’agit :

  • d’un fichier (-)
  • d’un lien (l)
  • ou d’un répertoire (d)

Suivent ensuite les trois groupes de trois symboles de permission (rwx-). Par exemple : -rw-r--r-- signifie qu’il s’agit d’un fichier avec les permissions réglées à 644 drwx------ signifie qu’il s’agit d’un répertoire avec les permissions réglées à 700 lrwxrwxrwx signifie qu’il s’agit d’un lien avec les permissions réglées à 777

L’intérêt de chown

Pour éviter le chmod 666 (ou pire, 777), chown permet de changer le propriétaire d’un fichier.

Si vous voulez récupérer les droits de propriété sur un dossier entier et que vous êtes l’utilisateur « martin » :

Fenêtre de terminal
sudo chown -R martin /path/to/folder

Récupérer les permissions sur le dossier entier :

Fenêtre de terminal
sudo chmod -R 755 /path/to/folder
Utiliser avec une IA

Actions