English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La commande chmod (en anglais complet : change mode) de Linux est une commande pour contrôler les permissions des fichiers des utilisateurs
Linux/Les permissions d'appel de fichiers Unix sont divisées en trois niveaux : propriétaire du fichier (Owner), groupe d'utilisateurs (Group), autres utilisateurs (Other Users).
Seuls le propriétaire du fichier et l'utilisateur super administrateur peuvent modifier les permissions des fichiers ou des dossiers. Vous pouvez utiliser le mode absolu (mode en octal) ou le schéma de symboles pour spécifier les permissions des fichiers.
Permissions d'utilisation : Tous les utilisateurs
chmod [-cfvR] [--help] [--version] mode file...
mode : Chaîne de définition des permissions, format suivant :
[ugoa...][[+-=][rwxX]...][,...]
Parmi eux :
u signifie le propriétaire du fichier, g signifie ceux qui appartiennent au même groupe que le propriétaire du fichier, o signifie les autres, a signifie les trois premiers.
+ Signifie ajouter des permissions,- Signifie annuler les permissions, = signifie définir les permissions de manière unique.
r signifie lecture, w signifie écriture, x signifie exécutable, X signifie que le fichier est un sous-répertoire ou que le fichier a été défini comme exécutable.
Autres explications des paramètres :
-c : Afficher l'action de modification uniquement si les permissions du fichier ont été effectivement modifiées
-f : Ne pas afficher de message 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 actuel (à la manière récursive)
--help : Afficher les instructions d'aide
--version : Afficher la version
Il est possible de configurer plusieurs éléments en utilisant le schéma de symboles : who (type d'utilisateur), operator (opérateur) et permission (permission), chaque configuration peut être séparée par une virgule. La commande chmod modifie les permissions d'accès aux fichiers pour le type d'utilisateur spécifié par who, le type d'utilisateur est indiqué par une ou plusieurs lettres à la place de who, comme indiqué dans le tableau des schémas de symboles :
who | Type d'utilisateur | Explication |
---|---|---|
u | user | Le propriétaire du fichier |
g | group | Le groupe auquel appartient le propriétaire du fichier |
o | others | Tous les autres utilisateurs |
a | all | L'utilisateur utilisé, équivalent à ugo |
Tableau des schémas de symboles de l'operator
Operator | Explication |
---|---|
+ | Ajouter des permissions pour le type d'utilisateur spécifié |
- | Retirer les permissions spécifiées pour le type d'utilisateur |
= | Définir les permissions spécifiées pour l'utilisateur, c'est-à-dire réinitialiser toutes les permissions de type utilisateur |
Tableau des symboles de mode de permission :
Mode | Nom | Explication |
---|---|---|
r | Lecture | Définir les permissions de lecture |
w | Écrire | Définir les permissions d'écriture |
x | Permissions d'exécution | Définir les permissions d'exécution |
X | Permissions d'exécution spéciales | Seulement lorsque le fichier est un répertoire ou que d'autres types d'utilisateurs ont des permissions d'exécution, les permissions du fichier sont configurées pour être exécutables |
s | setuid/gid | Lorsque le fichier est exécuté, le bit setuid ou setgid du fichier est configuré en fonction du type d'utilisateur spécifié par le paramètre who |
t | Bit de collage | Définir le bit de collage, uniquement le superutilisateur peut définir ce bit, et le propriétaire du fichier u peut utiliser ce bit |
La commande chmod peut utiliser des nombres octaux pour spécifier les permissions. Les bits de permission des fichiers ou des répertoires sont déterminés par9bits de permission pour contrôler, chaque groupe de trois bits, ils représentent respectivement les permissions de lecture, d'écriture et d'exécution du propriétaire du fichier (User), du groupe utilisateur (Group) et des autres utilisateurs (Other). Historiquement, les permissions des fichiers ont été placées dans un masque binaire, où les bits spécifiés sont1pour indiquer que une classe a une priorité correspondante.
# | Permissions | rwx | Binaire |
---|---|---|---|
7 | Lecture + Écrire + Exécuter | rwx | 111 |
6 | Lecture + Écrire | rw- | 110 |
5 | Lecture + Exécuter | r-x | 101 |
4 | Seulement lire | r-- | 100 |
3 | Écrire + Exécuter | -wx | 011 |
2 | Seulement écrire | -w- | 010 |
1 | Seulement exécuter | --x | 001 |
0 | Aucun | --- | 000 |
Par exemple, 765 Cela doit être interprété comme :
Les permissions du propriétaire sont exprimées en nombre : la somme des valeurs numériques des trois bits de permission du propriétaire. Par exemple, rwx, ce qui signifie 4+2+1 doit être 7。
Les permissions du groupe utilisateur sont exprimées en nombre : la somme des valeurs numériques des bits de permission du groupe utilisateur. Par exemple, rw- ce qui signifie 4+2+0 doit être 6。
Les expressions numériques des permissions des autres utilisateurs : la somme des valeurs numériques des bits de permission des autres utilisateurs. Par exemple, r-x, ce qui signifie 4+0+1 doit être 5。
Rendre le fichier file1Fichier .txt avec les permissions de lecture pour tout le monde :
chmod ugo+r file1.txt
Rendre le fichier file1Fichier .txt avec les permissions de lecture pour tout le monde :
chmod a+r file1.txt
Rendre le fichier file1.txt et file2Fichier .txt avec les permissions d'écriture pour le propriétaire et les membres du même groupe, mais pas pour les autres :
chmod ug+w,o-w file1.txt file2.txt
Pour ex1Fichier .py avec l'ajout des permissions d'exécution pour le propriétaire :
chmod u+x ex1.py
Rendre tous les fichiers et sous-répertoires du répertoire actuel lisibles par tout le monde :
chmod -R a+r *
En plus, chmod peut également utiliser des nombres pour représenter les permissions comme :
chmod 777 file
La syntaxe est :
chmod abc file
où a, b, c sont des nombres, représentant respectivement les permissions de User, Group et Other.
Pour rwx les attributs 4+2+1=7;
Pour rw- les attributs 4+2=6;
Pour r-x attribut alors 4+1=5。
chmod a=rwx file
et
chmod 777 file
le résultat est le même
chmod ug=rwx,o=x file
et
chmod 771 file
le résultat est le même
Si vous utilisez chmod 4755 filename permet à ce programme d'avoir les droits root.
Commande | Explication |
---|---|
chmod a+r file | Ajouter des permissions de lecture pour tous les utilisateurs du fichier |
chmod a-x file | Supprimer les permissions d'exécution pour tous les utilisateurs du fichier |
chmod a+rw file | Ajouter des permissions de lecture/écriture pour tous les utilisateurs du fichier |
chmod +rwx file | Ajouter des permissions de lecture/écriture/execution pour tous les utilisateurs du fichier |
chmod u=rw,go= file | Fixer les permissions de lecture/écriture pour le propriétaire du fichier, et effacer les permissions de lecture pour le groupe et les autres utilisateurs (l'espace représente pas de permission) |
chmod -R u+r,go-r docs | Ajouter des permissions de lecture aux fichiers de la hiérarchie des dossiers docs et de ses sous-dossiers pour l'utilisateur, et supprimer les permissions de lecture pour le groupe et les autres utilisateurs |
chmod 664 file | Fixer les permissions de lecture/écriture pour le propriétaire et le groupe du fichier, et fixer les permissions de lecture pour les autres utilisateurs |
chmod 0755 file | équivaut à u=rwx (4+2+1), go=rx (4+1 & 4+1)。0 Pas de mode spécial. |
chmod 4755 file | 4a été régléID utilisateurbits, le reste équivaut à u=rwx (4+2+1), go=rx (4+1 & 4+1)。 |
find path/ -type d -exec chmod a-x {} \; | supprimer les permissions exécutables pour path/et tous les dossiers (sauf les fichiers) de tous les utilisateurs, en utilisant'-type f'répond aux fichiers |
find path/ -type d -exec chmod a+x {} \; | Permet à tous les utilisateurs de naviguer ou d'accéder aux répertoires via le chemin path/ |