10 exemples d’utilisation la commande chmod sur Linux pour changer les permissions

chmod est la commande Linux pour attribuer, changer, modifier ou supprimer les permissions de fichiers et répertoires.
Dans les systèmes Linux / Unix, l'accessibilité aux fichiers et aux répertoires est déterminé par le propriété et les autorisations de fichiers.

Dans ce tutoriel, je vous donne 10 exemples pour utiliser la commande chmod sur Linux pour changer les permissions de fichiers ou dossiers.

Utiliser la commande chmod sur Linux pour changer les permissions fichiers/dossiers

Comment fonctionnement des permissions de fichiers Linux

La notion des permissions de fichiers sur Linux n'est pas très complexe.
Toutefois pour maitriser complètement la commande chmod, il faut savoir comment fonctionne les autorisations de fichiers.

Le tutoriel suivant vous explique tout cela :

10 exemples d'utilisation la commande chmod sur Linux pour changer les permissions

La syntaxe chmod est la suivante :

chmod [OPTIONS] MODE fichier
  • Options : les paramètres de la commande par exemple +R pour rendre récursif
  • MODE : les permissions à expliquer soit en octal (texte), soit en décimale (chiffre)
  • Fichier : le nom du fichier

Ainsi, vous allez voir que pour attribuer les mêmes permissions, on peut avoir plusieurs utilisations différentes de la commande chmod.

Changer des permissions à l'aide de la notation numérique

Voici comment utiliser chmod avec les permissions numériques.
C'est la façon la plus rapide d'utiliser chmod.

Voici les valeurs possibles :

PermissionsNotation décimale
r (lecture)4
w (écriture)2
x (exécution)1
Correspondance permissions en nombre décimal

On additionne les valeurs pour appliquer les permissions.

Pour affecter des autorisations de lecture, d'écriture et d'exécution du propriétaire et de lire des autorisations uniquement au groupe et aux autres utilisateurs (rwxrw-rw-), exécutez la commande :

chmod 744 fichier.txt

Pour affecter toutes les autorisations au propriétaire du fichier, lire et exécuter des autorisations au groupe et aucune autorisation à d'autres utilisateurs (rwxr-x--), exécuter :

chmod 750 coders.txt

Changer des permissions à l'aide de la notation de texte

Voici comment utiliser chmod avec les permissions en texte.
La syntaxe est la suivante :

chmod [OPTIONS] [ u g o a ]  [ – + = ] [ r, w, x ] fichier

Le première groupe de paramètres définit à quelle catégorie vous appliquez les permissions.

Les catégoriesDescription
u (user)Affecter les permissions à l'utilisateur
g (group)Affecter les permissions au groupe
o (other)Affecter les permissions à autre
a (all)Pour appliquer à toutes les catégories
Les appartenances de fichiers sur Linux

Le deuxième ensemble d'options définit l'action, si vous ajoutez ou supprimez des permissions.

DrapeauxDescription
-Supprime les autorisations de fichier à partir d'un utilisateur spécifié.
+Ajoute des autorisations à un utilisateur spécifié.
=Attribue des autorisations distinctes des utilisateurs spécifiés et supprime les autorisations précédentes du segment utilisateur.
Les drapeaux d'autorisations de chmod

Changer des permissions de lecture d'un fichier

Par exemple pour changer les permissions en lecture pour autre sans aucune autre permission :

chmod o=r fichier

Un équivalent d'utilisation est :

chmod o+r-xw fichier

ou encore en numérique (XY avec les permissions souhaités pour le propriétaire et groupe) :

chmod XY4 fichier
Changer des permissions de lecture d'un fichier

Pour changer les permissions en lecture seulement pour le propriétaire :

chmod u=r fichier

Pour ajouter les permissions en écriture au groupe sans modifier les autres permissions :

chmod o+r fichier

Changer des permissions d'écriture d'un fichier

De la même manière pour changer les permissions en écriture seules sur un fichier pour le propriétaire :

chmod o=w fichier

Pour changer les permissions en écriture seules sur le groupe à un fichier :

chmod g=w fichier

Changer les permissions d'exécution au fichier au propriétaire et groupe

Pour ajouter les autorisations d'exécution au propriétaire et groupe à un fichier :

chmod ug+x fichier

Pour n'avoir que les permissions seulement en exécution :

chmod ug=x fichier

Attribuer différentes autorisations de fichier au groupe et aux autres

Pour attribuer plusieurs permissions en les séparant par des virgules, par exemple :

chmod ug+rxw,o-rwx fichier

Ou encore :

chmod ug+rxw,o= fichier

Si aucune permission n'est indiquée après le =, cela les supprime toute.

Attribuer différentes autorisations de fichier au groupe et aux autres

Ce qui équivaut aussi à :

chmod 770 fichier

Supprimer toutes les autorisations pour les autres utilisateurs

Pour supprimer toutes les autorisations pour les autres utilisateurs, vous pouvez utiliser le drapeaux = sans rien spécifier.

chmod o= fichier

ou encore utilisez chmod comme ceci :

chmod u-rwx fichier

Mais aussi en mettant 0 sur la dernière catégorie, par exemple :

chmod 660 fichier
chmod 770 fichier

Attribuer des autorisations à l'aide d'un fichier de référence

chmod vous permet d'appliquer les permissions d'un fichier à un autre.
Pour cela, on utilise l'option --reference=ref_file

Pour appliquer les permissions de fichier1 à fichier :

chmod --reference=fichier1 fichier
Attribuer des autorisations à l'aide d'un fichier de référence

Modifier les autorisations en récursif (tous les répertoires et sous-répertoires)

Pour modifier les autorisations à l'ensemble de l'arborescence, c'est à dire aux répertoires et tout ce qu'il contient, on utilise l'option -R.
Cela demande d'appliquer les permissions de manière récursive.

chmod 660 -R /repertoire

Modifier l'autorisation d'exécution aux répertoires uniquement

Pour modifier les attributs d'un répertoire et des sous-répertoires SANS toucher aux fichiers qui s'y trouvent, utilisez le drapeau a de cette manière :

chmod a+X *