« Chmod - Les bases des permissions » : différence entre les versions
| (11 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
<big>'''Deux notations peuvent être utilisées avec chmod : alphabétique et numérique.'''</big> | |||
= Les différentes catégories d'utilisateurs avec leurs abréviations = | = Les différentes catégories d'utilisateurs avec leurs abréviations = | ||
| Ligne 4 : | 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 15 : | 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 34 : | Ligne 39 : | ||
= Modifier les permissions sur les fichiers et les répertoires en employant la notification alphabétique = | = 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]''' | '''chmod [ugo] [+-=] [rwx]''' | ||
| Ligne 92 : | Ligne 99 : | ||
*Un utilisateur a une autorisation en lecture/écriture sur un fichier ou un répertoire. | *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 | *: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. | *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 | |||
Lecture = '''4''' et Exécution = '''1''', permission finale '''4'''+'''1''' = 5 | |||
Lecture = '''4''', Écriture = '''2''' et Exécution = '''1''', permission finale '''4'''+'''2''' + '''1''' = 7 | *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 | |||
{| 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 129 : | 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 217 : | 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)]] | ||
Dernière version du 12 décembre 2025 à 18:21
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