Chmod - Les bases des permissions
Les différentes catégories d'utilisateurs avec leurs abréviations
| Catégorie d’utilisateur | Abréviation |
| Utilisateur (propriétaire) | u |
| Groupe | g |
| Autres (others) | o |
Les différents attributs avec leurs abréviations
| Attribut | Abréviation | Signification pour un fichier | Signification pour un répertoire |
| Lecture | r | Lisible | Listable avec ls. |
| Écriture | w | Modifiable | Peut être effacé renommé ou recevoir des fichiers. |
| Exécutable | x | Peut être exécuté en tant que programme | Accès en lecture des fichiers et sous répertoires et exécution des fichiers. |
| suid | s | N’importe quel utilisateur peut exécuter le fichier avec les permissions du propriétaire. | Non applicable |
| sgid | s | N’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 bit | t | L’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
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
chmod [0-7] [0-7] [0-7]
| Propriétaire | Groupe | Autre | |
| Permissions | r,w,x | r,w,x | r,w,x |
| Représentation numérique | 4, 2, 1 | 4, 2, 1 | 4, 2, 1 |
Permissions numériques représentées avec ls -l
| 0 | --- |
| 1 | --x |
| 2 | -w- |
| 3 | -wx |
| 4 | r-- |
| 5 | r-x |
| 6 | rw- |
| 7 | rwx |
Permissions courantes et représentation ls -l
| Commande chmod | Représentation ls -l | Signification |
| 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-x | Tout le mode peut lire et exécuter, seul le propriétaire peut modifier. |
| chmod 777 | -rwxrwxrwx | Tout le monde peut lire, écrire et exécuter. |
Voir également :
La gestion des droits sous Linux (sticky bit - sgid - suid)
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.
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.