« Chmod - Les bases des permissions » : différence entre les versions
| (7 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 6 : | Ligne 6 : | ||
|'''Catégorie d’utilisateur''' || '''Abréviation''' | |'''Catégorie d’utilisateur''' || '''Abréviation''' | ||
|- | |- | ||
|Utilisateur (propriétaire)|| u | |Utilisateur (propriétaire)|| <code>u</code> | ||
|- | |- | ||
|Groupe || g | |Groupe || <code>g</code> | ||
|- | |- | ||
|Autres (others) ||o | |Autres (others) || <code>o</code> | ||
|} | |} | ||
| Ligne 17 : | Ligne 17 : | ||
= Les différents attributs avec leurs abréviations = | = Les différents attributs avec leurs abréviations = | ||
{| class="wikitable" style="margin:auto; | {| class="wikitable sortable" style="margin: auto; text-align: left; width: 80%;" | ||
|'''Attribut''' | ! style="background: #f0f0f0;" | '''Attribut''' | ||
! style="background: #f0f0f0;" | '''Abréviation''' | |||
! style="background: #f0f0f0;" | '''Signification pour un fichier''' | |||
! style="background: #f0f0f0;" | '''Signification pour un répertoire''' | |||
|- | |- | ||
|Lecture || r || Lisible || Listable avec ls. | |Lecture || <code>r</code> || Lisible || Listable avec ls. | ||
|- | |- | ||
|Écriture || w || Modifiable || Peut être effacé renommé ou recevoir des fichiers. | |Écriture || <code>w</code> || 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. | |Exécutable || <code>x</code> || 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 | |suid || <code>s</code> || 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. | |sgid || <code>s</code> || 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. | |Sticky bit || <code>t</code> || || 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. | ||
|} | |} | ||
| Ligne 106 : | Ligne 109 : | ||
{| class="wikitable" style="margin:auto; margin-left: 0px;" | {| class="wikitable" style="margin:auto; margin-left: 0px;" | ||
| 0 || --- | | 0 || <code>---</code> | ||
|- | |- | ||
| 1 || --x | | 1 || <code>--x</code> | ||
|- | |- | ||
| 2 || -w- | | 2 || <code>-w-</code> | ||
|- | |- | ||
| 3 || -wx | | 3 || <code>-wx</code> | ||
|- | |- | ||
| 4 || r-- | | 4 || <code>r--</code> | ||
|- | |- | ||
| 5 || r-x | | 5 || <code>r-x</code> | ||
|- | |- | ||
| 6 || rw- | | 6 || <code>rw-</code> | ||
|- | |- | ||
| 7 || rwx | | 7 || <code>rwx</code> | ||
|} | |} | ||
| Ligne 130 : | Ligne 133 : | ||
! style="background: #f0f0f0;" | '''Signification''' | ! style="background: #f0f0f0;" | '''Signification''' | ||
|- | |- | ||
| chmod 400 || -r-------- || Le propriéaire peut lire,les autres ne peuvent rien faire du tout. | | chmod 400 || <code>-r--------</code> || 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 644 || <code>-rw-r--r--</code> || 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 660 || <code>-rw-rw----</code> || 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 664 || <code>-rw-rw-r--</code> || 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 700 || <code>-rwx------</code> || 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 744 || <code>-rwxr--r--</code> || 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 750 || <code>-rwxr-x---</code> || 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 755 || <code>-rwxr-xr-x</code> || 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. | | chmod 777 || <code>-rwxrwxrwx</code> || Tout le monde peut lire, écrire et exécuter. | ||
|} | |} | ||
| Ligne 218 : | Ligne 221 : | ||
<big>'''Gestion des droits'''</big> | <big>'''Gestion des droits'''</big> | ||
[[La gestion des droits sous Linux (sticky bit - sgid - suid)|La gestion des droits sous Linux (sticky bit - sgid - suid)]] | [[La gestion des droits sous Linux (sticky bit - sgid - suid)|La gestion des droits sous Linux (sticky bit - sgid - suid)]] | ||
| Ligne 230 : | Ligne 231 : | ||
[[Modifier le propriétaire et/ou le groupe propriétaire d’un fichier ou répertoire avec chgrp et chown sous Linux|Modifier le propriétaire et/ou le groupe propriétaire d’un fichier ou répertoire avec chgrp et chown sous Linux]] | [[Modifier le propriétaire et/ou le groupe propriétaire d’un fichier ou répertoire avec chgrp et chown sous Linux|Modifier le propriétaire et/ou le groupe propriétaire d’un fichier ou répertoire avec chgrp et chown sous Linux]] | ||
<big>'''Lister les fichiers'''</big> | |||
[[Ls - Lister les fichiers et dossiers dans un répertoire sous Linux|Ls - Lister les fichiers et dossiers dans un répertoire sous Linux]] | |||
Dernière version du 14 décembre 2025 à 10:57
Deux notations peuvent être utilisées avec chmod : alphabétique et numérique.
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
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é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
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
|
| 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. |
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
Gestion des droits
La gestion des droits sous Linux (sticky bit - sgid - suid)
Utilisateurs et groupes
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
Lister les fichiers
Ls - Lister les fichiers et dossiers dans un répertoire sous Linux