Commande chmod Linux

Linux 命令大全Encyclopédie des commandes Linux

La commande Linux chmod (forme complète en anglais : change mode) est une commande qui contrôle les permissions des utilisateurs sur les fichiers.

chmod (change mode) est une commande des systèmes Linux utilisée pour modifier les permissions des fichiers ou des répertoires. Elle contrôle les permissions d'accès au fichier du propriétaire, du groupe propriétaire et des autres utilisateurs.

Seul le propriétaire du fichier et le superutilisateur peuvent modifier les permissions d'un fichier ou d'un répertoire.

Les permissions d'accès aux fichiers sous Linux/Unix sont divisées en trois niveaux : le propriétaire du fichier (Owner), le groupe d'utilisateurs (Group) et les autres utilisateurs (Other Users).

Vous pouvez utiliser le mode absolu (mode numérique octal) et le mode symbolique pour spécifier les permissions de fichier.

Permission d'utilisation: Tous les utilisateurs

Syntaxe

chmod [选项] 权限模式 文件...
chmod [选项] --reference=参考文件 文件...

Options courantes

  • -c : Afficher l'action de modification uniquement si la permission du fichier a réellement été modifiée
  • -f : Ne pas afficher de messages d'erreur si les permissions du fichier ne peuvent pas être modifiées
  • -v : Afficher des informations détaillées sur les modifications de permissions
  • -R : Appliquer les mêmes modifications de permissions à tous les fichiers et sous-répertoires du répertoire courant (c'est-à-dire les modifier un par un de manière récursive)
  • --help : Afficher les informations d'aide
  • --version : Afficher la version

mode : Chaîne de définition des permissions, le format est le suivant :

Modes de permission

1. Mode symbolique (permission ugoa+/-)

[ugoa...][[+-=][rwxX]...][,...]

Où :

  • u représente le propriétaire du fichier, g représente les utilisateurs appartenant au même groupe que le propriétaire du fichier, o représente les autres, et a représente les trois.
  • + signifie ajouter une permission, - signifie supprimer une permission, = signifie définir la permission de manière unique.
  • r signifie lisible, w signifie inscriptible, x signifie exécutable, X signifie uniquement lorsque le fichier est un sous-répertoire ou que le fichier a déjà été défini comme exécutable.

En mode symbolique, plusieurs éléments peuvent être définis : who (type d'utilisateur), opérateur et permission. Les paramètres de chaque élément peuvent être séparés par des virgules.

La commande chmod modifiera les permissions d'accès au fichier pour les types d'utilisateurs spécifiés par who. Le type d'utilisateur est indiqué par une ou plusieurs lettres à la position who, comme indiqué dans le tableau du mode symbolique who :

who Type d'utilisateur Description
u user Propriétaire du fichier
g group Groupe du propriétaire du fichier
o autres Tous les autres utilisateurs
a all Tous les utilisateurs, équivalent àugo

Tableau du mode symbolique pour l'opérateur :

Operator Description
+ Ajouter la permission au type d'utilisateur spécifié
- Retirer la permission du type d’utilisateur spécifié
= Définir les permissions pour le type d’utilisateur spécifié, c’est-à-dire réinitialiser toutes les permissions du type d’utilisateur

Types d’autorisations :

Mode Name Description
r read Définir comme permission de lecture
w write Définir comme permission d’écriture
x Permission d’exécution Définir comme permission d’exécution
X Permission d’exécution spéciale Définir la permission du fichier comme exécutable uniquement lorsque le fichier est un fichier de type répertoire, ou lorsque d’autres types d’utilisateurs ont la permission d’exécution
s setuid/gid Lorsque le fichier est exécuté, définir la permission setuid ou setgid du fichier selon le type d’utilisateur spécifié par le paramètre who
t Bit sticky Définir le bit sticky. Seul le superutilisateur peut définir ce bit, et seul le propriétaire du fichier u peut utiliser ce bit.

2. Syntaxe octale

La commande chmod peut utiliser des nombres octaux pour spécifier les permissions.

Number Autorisation
4 Lecture (r)
2 Écriture (w)
1 Exécution (x)

Combinaison:

  • Permission du propriétaire (premier chiffre)
  • Permission du groupe (deuxième chiffre)
  • Permission des autres utilisateurs (troisième chiffre)

Combinaisons courantes:

  • 755: rwxr-xr-x
  • 644: rw-r--r--
  • 700: rwx------

Les bits de permission d'un fichier ou d'un répertoire sont contrôlés par 9 bits de permission, chaque groupe de trois bits représente les permissions de lecture, d'écriture et d'exécution du propriétaire du fichier (User), la lecture, l'écriture et l'exécution du groupe (Group), et la lecture, l'écriture et l'exécution des autres utilisateurs (Other).

# Autorisation rwx Binary
7 Lecture + Écriture + Exécution rwx 111
6 Lecture + Écriture rw- 110
5 Lecture + Exécution r-x 101
4 Lecture seule r-- 100
3 Écriture + Exécution -wx 011
2 Écriture seule -w- 010
1 Exécution uniquement --x 001
0 Aucune --- 000

Par exemple, 765 serait interprété comme suit :

  • L'autorisation du propriétaire est exprimée en chiffres : la somme des chiffres des trois bits d'autorisation du propriétaire. Par exemple, rwx signifie 4+2+1, ce qui doit donner 7.
  • L'autorisation du groupe est exprimée en chiffres : la somme des chiffres des bits d'autorisation du groupe. Par exemple, rw- signifie 4+2+0, ce qui doit donner 6.
  • L'autorisation des autres utilisateurs est exprimée en chiffres : la somme des chiffres des bits d'autorisation des autres utilisateurs. Par exemple, r-x signifie 4+0+1, ce qui doit donner 5.

Exemples

Rendre file1.txt lisible par tout le monde :

chmod ugo+r file1.txt

Rendre file1.txt lisible par tout le monde :

chmod a+r file1.txt

Configurer file1.txt et file2.txt pour que le propriétaire du fichier et les personnes du même groupe puissent écrire, mais que les autres ne puissent pas écrire :

chmod ug+w,o-w file1.txt file2.txt

Ajouter la permission d'exécution pour le propriétaire du fichier ex1.py :

chmod u+x ex1.py

Rendre tous les fichiers et sous-répertoires du répertoire courant lisibles par tout le monde :

chmod -R a+r *

De plus, chmod peut aussi utiliser des nombres pour représenter les permissions, par exemple :

chmod 777 file

La syntaxe est :

chmod abc file

Où a, b, c sont chacun un nombre, représentant respectivement les permissions de User, Group et Other.

r=4,w=2,x=1

  • Pour les attributs rwx, 4+2+1=7 ;
  • Pour les attributs rw-, 4+2=6 ;
  • Pour les attributs r-x, 4+1=5.
chmod a=rwx file

et

chmod 777 file

L'effet est identique

chmod ug=rwx,o=x file

et

chmod 771 file

L'effet est identique

Si l'on utilisechmod 4755 filenamecela peut donner au programme les privilèges root.

Remarques supplémentaires

Commande Description
chmod a+r file Ajouter la permission de lecture à tous les utilisateurs pour le fichier
chmod a-x file Supprimer la permission d'exécution à tous les utilisateurs pour le fichier
chmod a+rw file Ajouter les permissions de lecture et d'écriture à tous les utilisateurs pour le fichier
chmod +rwx file Ajouter les permissions de lecture, d'écriture et d'exécution à tous les utilisateurs pour le fichier
chmod u=rw,go= file Définir la permission de lecture et d'écriture pour le propriétaire du fichier, et supprimer toutes les permissions pour le groupe et les autres utilisateurs sur le fichier (un espace représente l'absence de permission)
chmod -R u+r,go-r docs Ajouter la permission de lecture pour l'utilisateur à tous les fichiers dans le répertoire docs et sa hiérarchie de sous-répertoires, et supprimer la permission de lecture pour le groupe et les autres utilisateurs
chmod 664 file Définir les droits de lecture et d'écriture pour le propriétaire et le groupe du fichier, et définir le droit de lecture pour les autres utilisateurs
chmod 0755 file Équivalent àu=rwx (4+2+1),go=rx (4+1 & 4+1)。0Aucun mode spécial.
chmod 4755 file 4Le bit set-user-ID est défini, et le reste est équivalent à u=rwx (4+2+1), go=rx (4+1 & 4+1).
find path/ -type d -exec chmod a-x {} \; Supprimer le droit d'exécution pour tous les utilisateurs sur path/ et tous ses répertoires (sans inclure les fichiers) ; utilisez '-type f' pour cibler les fichiers.
find path/ -type d -exec chmod a+x {} \; Autoriser tous les utilisateurs à parcourir ou traverser le répertoire path/

Linux 命令大全Encyclopédie des commandes Linux

Autres extensions