Chmod – Les bases des permissions

Les différentes catégories d’utilisateurs avec leurs abréviations

Catégorie d’utilisateurAbréviation
Utilisateur (propriétaire)u
Groupeg
Autres (others)o

Les différents attributs avec leurs abréviations

AttributAbréviationSignification pour un fichierSignification pour un répertoire
LecturerLisibleListable avec ls.
ÉcriturewModifiablePeut être effacé renommé ou recevoir des fichiers.
ExécutablexPeut être exécuté en tant que programmeAccès en lecture des fichiers et sous répertoires et exécution des fichiers.
suidsN’importe quel utilisateur peut exécuter le fichier avec les permissions du propriétaire.Non applicable
sgidsN’importe quel utilisateur peut exécuter le fichier avec les droits du groupe auquel il appartient.Tous les fichiers nouvellement créés dans le répertoire appartiennent au groupe propriétaire du répertoire.
Sticky bittL’utilisateur ne peut effacer ou renommer les fichiers à moins qu’il ne soit le propriétaire ou celui du répertoire qui les contient.

Modifier les permissions sur les fichiers et les répertoires en employant la notification alphabétique

La notation alphabétique utilise une formule simple : groupe à modifier (u, g, o), suivi du symbole + pour donner une permission, du symbole pour supprimer une permission ou du symbole = pour définir des permissions exactes, suivi des lettres (r, w, x, s, t) représentant les permissions.

chmod [ugo] [+-=] [rwx]

Vous pouvez vérifier le résultat avec la commande :

ls -l mon_fichier

Exemples :

chmod g+w mon_fichier

Autorisation en écriture pour le groupe.

chmod go+w mon_fichier

Autorisation en écriture pour le groupe ainsi qu’à tous les autres utlisateurs.

chmod a=rw mon_fichier

Autorisations en lecture et en écriture pour tout le monde (propriétaire, groupe et autres).

chmod go-w mon_fichier

Retirer la permission en écriture au groupe et aux autres utilisateurs.

chmod o-r  mon_fichier

Retirer la permission en lecture aux autres utilisateurs.

chmod g=r mon_fichier

Le groupe aura seulement la permission en lecture.

chmod o= mon_fichier

chmod est égal à rien, ce qui revient à supprimer toutes les permissions pour les autres utilisateurs.


Modifier les permissions sur les fichiers et les répertoires en employant la notification numérique

La lecture – read (r) vaut 4, l’écriture – write (w) vaut 2 et exécuter – execute (x) vaut 1. Il y a trois catégories d’utilisateurs – user : le propriétaire, le groupe – group et les autres – others. Chaque groupe d’utilisateurs peut lire, écrire et exécuter.

chmod [0-7] [0-7] [0-7]

PropriétaireGroupeAutre
Permissionsr,w,xr,w,xr,w,x
Représentation numérique4,2,14,2,14,2,1

Permissions numériques représentées avec ls -l

L’attribution des permissions revient à effectuer une addition. Par exemple :

  • Un utilisateur a une autorisation en lecture/écriture sur un fichier ou un répertoire. Lecture = 4 et Écriture = 2, permission finale 4+2 = 6
  • Un utilisateur a une autorisation en lecture/exécution sur un fichier ou un répertoire. Lecture = 4 et Exécution = 1, permission finale 4+1 = 5
  • Un utilisateur a une autorisation en lecture/écriture/exécution sur un fichier ou un répertoire. Lecture = 4, Écriture = 2 et Exécution = 1, permission finale 4+2 + 1 = 7
0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

Permissions courantes et représentation ls -l

Commande chmodReprésentation ls -lSignification
chmod 400-r--------Le propriéaire peut lire,les autres ne peuvent rien faire du tout.
chmod 644-rw-r--r--Tout le monde peut lire, seul le propriétaire peut modifier.
chmod 660-rw-rw----Le propriétaire et le groupe peuvent lire et modifier, les autres ne peuvent rien faire.
chmod 664-rw-rw-r--Tout le monde peut lire, le propriétaire et le groupe peuvent modifier.
chmod 700-rwx------Le propriétaire peut lire, écrire et exécuter, les autres ne peuvent rien faire.
chmod 744-rwxr--r--Tout le monde peut lire, seul le propriétaire peut modifier et exécuter.
chmod 750-rwxr-x---Le propriétaire et le groupe peuvent lire et exécuter, seul le propriétaire peut modifier, les autres ne peuvent rien faire.
chmod 755-rwxr-xr-xTout le mode peut lire et exécuter, seul le propriétaire peut modifier.
chmod 777-rwxrwxrwxTout le monde peut lire, écrire et exécuter.

Chmod – Modifier les permissions de façon récursive

Quelques exemples pratiques de la commande chmod avec l’option récursive (-R) pour modifier les permissions des fichiers et dossiers dans un environnement Linux.

Donner la permission de lecture et d’exécution à tous les fichiers et dossiers dans un répertoire :

chmod -R a+rx /chemin/vers/le/dossier/

Explication :

  • Ajoute (+) les permissions de lecture (r) et d’exécution (x) pour tous les utilisateurs (a) de manière récursive.

Retirer la permission d’écriture pour le groupe et les autres utilisateurs :

chmod -R go-w /chemin/vers/le/dossier/

Explication :

  • Retire (-) la permission d’écriture (w) pour le groupe (g) et les autres utilisateurs (o) de manière récursive.

Définir des permissions spécifiques pour les fichiers et dossiers (exemple : 755 pour les dossiers, 644 pour les fichiers) :

find /chemin/vers/le/dossier/ -type d -exec chmod 755 {} \;
find /chemin/vers/le/dossier/ -type f -exec chmod 644 {} \;

Explication :

  • find permet de cibler uniquement les dossiers (-type d) ou les fichiers (-type f) :
  • chmod 755 donne les permissions rwxr-xr-x aux dossiers.
  • chmod 644 donne les permissions rw-r–r– aux fichiers.

Donner uniquement au propriétaire le droit de lecture et d’écriture, et interdire tout accès aux autres :

chmod -R 700 /chemin/vers/le/dossier/

Explication :

  • Définit les permissions à rwx—— pour le propriétaire, et retire tous les droits pour le groupe et les autres.

Ajouter la permission d’exécution pour tous les fichiers .sh dans un répertoire :

chmod -R +x /chemin/vers/le/dossier/*.sh

Explication :

  • Ajoute la permission d’exécution (+x) à tous les fichiers avec l’extension .sh dans le répertoire et ses sous-répertoires.

Copier les permissions d’un fichier/dossier vers un autre (en utilisant chmod avec –reference) :

chmod -R --reference=/chemin/vers/le/fichier_source /chemin/vers/le/dossier_cible/
  • Explication : Applique les mêmes permissions que le fichier/dossier source à la cible, de manière récursive.

Retirer toutes les permissions pour « autres » utilisateurs :

chmod -R o-rwx /chemin/vers/le/dossier/

Explication :

  • Retire toutes les permissions (rwx) pour les « autres » utilisateurs (o) de manière récursive.

Voir également

Ls – Lister les fichiers et dossiers dans un répertoire sous Linux

La gestion des droits sous Linux (sticky bit – sgid – suid)

La création et la suppression des utilisateurs et des groupes avec les commandes Shell Linux

Modifier les propriétés d’un compte utilisateur avec usermod sous Linux

Modifier le propriétaire et/ou le groupe propriétaire d’un fichier ou répertoire avec chgrp et chown sous Linux

Retour en haut