logo

Commande Chmod sous Linux/Unix avec exemples

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 :

    -R :Cela signifie récursif, c'est-à-dire ajouter des objets aux sous-répertoires.-DANS:Il signifie verbeux, afficher les objets modifiés (les objets non modifiés ne sont pas affichés).

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 :

    rwx :Les trois caractères les plus à gauche spécifient les autorisations du propriétaire du fichier (c'est-à-dire la classe User).r-x :Les trois caractères du milieu spécifient les autorisations pour le groupe propriétaire du fichier (c'est-à-dire la classe Group).--- :Les trois caractères les plus à droite spécifient les autorisations pour la classe Autre. Les utilisateurs qui ne sont pas le propriétaire du fichier et les membres du groupe ne peuvent pas accéder au fichier.

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 :

Commande Linux chmod

À 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
Commande Linux chmod

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 :

Commande Linux chmod

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.