La commande Linux chmod est utilisée pour modifier les autorisations d'accès aux fichiers et aux répertoires. Ça signifie changer de mode . Il ne peut pas modifier l'autorisation des liens symboliques. Même, il ignore les liens symboliques rencontrés lors de la traversée récursive de répertoires.
Dans le Linux système de fichiers, chaque fichier est associé à un propriétaire particulier et dispose d'un accès autorisé pour différents utilisateurs. Les classes d'utilisateurs peuvent être :
- propriétaire
- membre du groupe
- Autres (tout le monde)
Les autorisations de fichiers sous Linux sont des trois types suivants :
- lire (r)
- écrire (w)
- exécuter (x)
Bref historique de Chmod
Premièrement, la commande chmod est représentée dans AT&T UNIX version 1 avec l'appel système chmod. Les listes de contrôle d'accès ont été incluses dans plusieurs systèmes de fichiers en plus de ces modes les plus courants afin d'améliorer la flexibilité, car les systèmes ont augmenté en types et en nombre d'utilisateurs.
La version chmod organisée dans GNU coreutils a été spécifiée par Jim Meyering et David MacKenzie. Cette commande est présente sous forme de package isolé pour Microsoft Windows en tant qu'élément de la collection de ports Win32 natifs UnxUtils d'utilitaires de base de type GNU Unix. De plus, la commande chmod a été livrée avec le système d'exploitation IBM i.
Voyons comment modifier l'autorisation du fichier à l'aide de la commande chmod.
Syntaxe:
classe vs objet java
La syntaxe de base de la commande chmod est la suivante :
chmod
Les options généralement mises en œuvre sont :
L'objet cible est influencé si un lien symbolique est mentionné. Les modes de fichier liés directement aux liens symboliques eux-mêmes ne sont généralement pas utilisés.
Le composant principal de l'autorisation chmod :
Par exemple, rwxr-x ---
Tous les groupes de trois caractères spécifient des autorisations pour toutes les classes :
Possibilités :
La commande chmod prend en charge les options de ligne de commande suivantes :
-c, --change : Elle est similaire à l'option verbeuse, mais la différence est qu'elle est signalée si une modification a été apportée.
-f, --silencieux, --quiet : Il est utilisé pour supprimer les messages d'erreur.
chaînes de tri java
-v, --verbeux : Il est utilisé pour afficher un diagnostic pour chaque fichier traité.
--no-preserve-root : Il est utilisé pour ne pas traiter le symbole antislash ('/'), en particulier (valeur par défaut).
--preserve-root : Si cette option est utilisée, elle ne fonctionnera pas de manière récursive sur la barre oblique inverse ('/').
--reference=RFILE : Il est utilisé pour spécifier le mode du RFILE ou les valeurs MODE.
-R, --récursif : Il est utilisé pour modifier les fichiers et les répertoires de manière récursive.
--aide: Il est utilisé pour afficher le manuel d'aide contenant une brève description des options d'utilisation et de support.
--version: Il est utilisé pour afficher les informations de version.
Syntaxe des autorisations de fichiers
Si vous êtes un nouvel utilisateur, vous risquez d'être confus avec les différents types de lettres utilisés pour définir l'autorisation du fichier. Donc, avant de continuer avec la commande chmod, comprenons la syntaxe des autorisations de fichiers.
Pour définir l'autorisation d'un fichier ou d'un répertoire, nous devons spécifier les éléments suivants :
- Qui : Qui nous sommes. (utilisateur)
- Quoi : Quel changement allons-nous apporter (comme ajouter ou supprimer l'autorisation) ?
- Laquelle : Laquelle des autorisations ?
La déclaration d'autorisation est représentée par des indicateurs tels que u+x, u-x. Où « u » signifie « utilisateur », « + » signifie ajouter, « - » signifie supprimer, « x » signifie exécutable (lequel).
commande d'exécution Linux
La valeur utilisateur peut être :
u : le propriétaire du fichier
g : membre du groupe
o : les autres
a : tout
Les types d'autorisation peuvent être r, w et x.
Définition et mise à jour des autorisations
Pour définir l'autorisation d'un fichier, exécutez une instruction d'autorisation avec la commande chmod. Par exemple, nous souhaitons définir l'autorisation de lecture et d'écriture pour tous les utilisateurs et groupes du fichier « Demo.txt ». Nous devons transmettre la déclaration d'autorisation 'u=rw,go=rw Demo.txt' avec la commande chmod. Pour afficher l'autorisation du fichier, exécutez la commande ci-dessous :
ls -l Demo.txt
La commande ci-dessus affichera l'autorisation de fichier actuelle du fichier « Demo.txt ».
Pour modifier l'autorisation, exécutez la commande ci-dessous :
chmod u=rw,go=rw Demo.txt
Considérez le résultat ci-dessous :
À partir du résultat ci-dessus, l'autorisation d'accès de « Demo.txt » a changé.
Définition des autorisations pour plusieurs fichiers
Nous pouvons définir l'autorisation pour plusieurs fichiers à la fois en utilisant la commande chmod. Pour modifier l'autorisation de fichier de plusieurs fichiers, spécifiez le modèle de fichier avec la commande chmod. Par exemple, si nous souhaitons définir des autorisations de lecture et d’écriture pour tous les fichiers texte, spécifiez le fichier *. modèle txt avec la commande chmod.
Pour afficher l'autorisation de tous les fichiers texte du répertoire de travail actuel, exécutez la commande ci-dessous :
ls -l *.txt
Il listera tous les fichiers texte avec leur mode d'autorisation. Considérez le résultat ci-dessous :
enveloppe de texte CSS
D'après le résultat ci-dessus, de nombreux fichiers n'ont qu'une autorisation de lecture pour les autres utilisateurs.
Pour définir l'autorisation de lecture et d'écriture pour les autres utilisateurs, exécutez la commande ci-dessous :
chmod o+w *.txt
Il définira l'autorisation de lecture et d'écriture pour les autres utilisateurs des fichiers texte. Considérez le résultat ci-dessous :
Raccourci numérique
Nous pouvons utiliser les valeurs numériques au lieu de lettres pour spécifier les autorisations. Une valeur à trois chiffres est utilisée pour spécifier l'autorisation. Le chiffre le plus à gauche représente le propriétaire (u) et le chiffre du milieu représente les membres du groupe (g). Le chiffre le plus à droite représente les autres (o).
Le tableau suivant représente les chiffres et leurs autorisations :
Chiffres | Autorisations |
---|---|
000 | Aucune autorisation |
001 | Exécuter l'autorisation |
010 | Autorisation d'écriture |
011 | Autorisations d'écriture et d'exécution |
100 | Autorisation de lecture |
101 | Autorisations de lecture et d'exécution |
110 | Autorisations de lecture et d'écriture |
111 | Autorisations de lecture, d'écriture et d'exécution |
Modes symboliques
De plus, la commande chmod accepte la notation symbolique plus fine, qui permet de modifier des modes spécifiques. Le mode symbolique se compose de trois éléments, qui sont fusionnés pour former une seule chaîne de texte :
$ chmod [references] [operator] [modes] file...
Le programme chmod applique un opérateur pour définir la manière dont les modes de fichiers doivent être organisés. Les opérateurs ci-dessous sont agréés :
Opérateur | Description | |
---|---|---|
+ | Il ajoute les classes décrites aux classes décrites. | |
- | Il supprime le mode décrit des classes décrites. | |
= | Cela signifie que les modes décrits doivent être créés de la même manière pour les classes décrites. |
Les modes représentent les autorisations qui seront supprimées ou accordées aux classes décrites. Il existe principalement trois modes courants liés aux autorisations communes :
Nom | Mode | Description |
---|---|---|
lire | r | Il lit un fichier ou répertorie le contenu d'un répertoire. |
écrire | Dans | Il écrit dans un répertoire ou un fichier. |
exécuter | X | Il récure une arborescence de répertoires ou exécute un fichier. |
exécution spéciale | X | Ce n'est pas une autorisation mais peut être utilisé à la place de x. Il utilise les autorisations d'exécution pour les répertoires malgré leurs autorisations actuelles et utilise les autorisations d'exécution pour un fichier qui a au moins un bit d'autorisations d'exécution défini. Il est utile s'il est utilisé avec l'opérateur '+' et sans définir l'autorisation d'exécution, ce qui se produirait si nous utilisions simplement chmod -R a+rx ., alors que nous pouvons implémenter chmod -R a+rx . avec x plutôt. |
Plusieurs modifications peuvent être décrites en isolant plusieurs modes symboliques avec des virgules. La commande chmod inspectera le umask si un utilisateur n'est pas spécifié.
Modes spéciaux
De plus, la commande chmod peut modifier les modes spéciaux et les autorisations supplémentaires d'un répertoire ou d'un fichier. Les modes symboliques appliquent « s » pour indiquer les modes setgid et setuid et « t » pour indiquer le mode collant. Un mode n'est utilisé que pour les classes appropriées, que d'autres classes soient mentionnées ou non.
Presque tous les systèmes d'exploitation prennent en charge numériquement la spécification du mode spécial, spécifiquement en octal, mais quelques-uns ne le font pas. Seuls les modes symboliques peuvent être appliqués à ces systèmes.
Quelques exemples de ligne de commande :
Commande | Description |
---|---|
chmod a+r publicComments.txt | Il ajoutera l'autorisation de lecture pour chaque classe (c'est-à-dire groupe, propriétaire et autres). |
chmod a-x publicComments.txt | Cela supprimera l’autorisation d’exécution pour chaque classe. |
chmod a+rx viewer.sh | Il ajoutera les autorisations d'exécution et de lecture pour chaque classe. |
chmod u=rw, g=r, o=planinterne.txt | Il définira les autorisations d'écriture et de lecture pour l'utilisateur, sera en lecture pour le groupe et rejettera l'accès pour les autres. |
chmod -R u+w, go-w docs | Il inclura l'autorisation d'écriture dans le répertoire docs et chacun de son contenu pour le propriétaire et supprimera l'autorisation d'écriture pour les autres et le groupe. |
chmod et = rw groupAgreements.txt | Il définira les autorisations d'écriture et de lecture pour le groupe et l'utilisateur. |
chmod 664 global.txt | Il définira les autorisations d'écriture et de lecture pour le groupe et l'utilisateur et accordera l'autorisation de lecture aux autres. |
chmod 744 Show_myCV.sh | Il définira les autorisations d'exécution, d'écriture et de lecture pour l'utilisateur et accordera l'autorisation de lecture au groupe et aux autres. |