Chmod - Les bases des permissions

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche

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.