GNU/Linux >> Tutoriels Linux >  >> Linux

9 exemples de commandes chmod rapides sous Linux

La commande chmod sous Linux est utilisée pour modifier ou attribuer des autorisations sur des fichiers et des répertoires. Dans les systèmes Linux/Unix, l'accessibilité aux fichiers et aux répertoires est déterminée par la propriété des fichiers et les autorisations. Dans un article précédent, nous avons vu comment gérer la propriété des fichiers et des répertoires à l'aide de la commande chown. Dans ce didacticiel, nous examinons la commande chmod.

La commande chmod, abréviation de mode de changement, est utilisée pour gérer les autorisations de fichiers et de répertoires et détermine qui peut y accéder. Plongeons maintenant et explorons la nature des autorisations de fichiers et de répertoires et comment elles peuvent être modifiées.

Autorisations Linux

Pour mieux comprendre le fonctionnement de la commande chmod, il est prudent d'étudier le modèle d'autorisations de fichiers Linux.

Sous Linux, nous avons 3 types d'autorisations de fichiers :les autorisations de lecture (r), d'écriture (w) et d'exécution (x). Ces autorisations déterminent quels utilisateurs peuvent lire, écrire ou exécuter les fichiers. Vous pouvez attribuer ces autorisations en utilisant la notation textuelle ou octale (numérique), comme nous le verrons plus tard dans ce didacticiel.

Les fichiers et répertoires peuvent appartenir au propriétaire du fichier (u), au groupe (g) ou à d'autres (o)

  • u   –  Propriétaire du fichier
  • g   –  Groupe
  • o   –  Autres

Les autorisations de fichiers sont répertoriées à l'aide de la commande ls -l. L'indicateur -l répertorie les autorisations de fichier. Les autorisations sont organisées en trois ensembles :l'utilisateur, le groupe et les autres respectivement

Pour mieux comprendre les autorisations de fichiers, nous allons lister le contenu de notre répertoire comme indiqué :

$ ls -l

En partant de l'extrême gauche, le premier caractère/symbole indique le type de fichier. Un trait d'union (-) indique que le fichier est un fichier normal. Le symbole d indique qu'il s'agit d'un répertoire. Le symbole l indique qu'il s'agit d'un lien symbolique.

Les neuf caractères restants sont segmentés en 3 triplets portant chacun trois symboles r(lecture), w(écriture) et x(exécution). Comme indiqué précédemment, le premier segment pointe vers les autorisations du propriétaire, le second indique les autorisations du groupe et la dernière partie spécifie les autorisations dont disposent les autres utilisateurs sur le fichier ou le répertoire.

À partir de la sortie, nous pouvons voir que nous avons 2 fichiers (hello.txt &reports.zip) et un seul répertoire.

Examinons le premier fichier

-rw-rw-r-- 1 linuxtechi linuxtechi   35 Aug 17 15:42 hello.txt

Pour le premier fichier, les autorisations -rw-rw-r– impliquent que le propriétaire du fichier a des autorisations de lecture et d'écriture, le groupe possède également des autorisations de lecture et d'écriture, tandis que les autres utilisateurs n'ont que des autorisations de lecture. Les mêmes autorisations s'appliquent également au fichier compressé reports.zip.

Regardons les permissions du répertoire :

drwxrwxr-x 2 linuxtechi linuxtechi 4096 Aug 17 15:43 sales

Nous pouvons voir que le propriétaire du répertoire et du groupe dispose de toutes les autorisations (lecture, écriture et exécution) tandis que les autres utilisateurs n'ont que les autorisations de lecture et d'exécution.

Les symboles de triple trait d'union - indiquent qu'aucune autorisation n'a été accordée au propriétaire du fichier, au groupe ou à d'autres utilisateurs.

Utilisation de la commande chmod pour définir les autorisations de fichiers et de répertoires

Après avoir examiné les autorisations de fichiers et comment les afficher, ne nous concentrons pas sur la façon de modifier ces autorisations.

La commande chmod sous Linux est utilisée pour modifier les autorisations de fichiers et de répertoires en utilisant la notation textuelle (symbolique) ou numérique (octale). Il prend la syntaxe suivante :

$ chmod [OPTIONS] MODE nom de fichier

Seul l'utilisateur root ou un utilisateur régulier avec des privilèges sudo peut modifier les autorisations de fichiers ou de répertoires. Vous pouvez transmettre plusieurs fichiers ou répertoires séparés par des espaces dans la syntaxe de la commande.

Examinons maintenant et voyons différents exemples de commande chmod.

Exemple 1) Attribuer des autorisations à l'aide d'une notation numérique

Lorsque vous définissez des autorisations à l'aide du style/notation numérique, utilisez la syntaxe ci-dessous :

$ sudo chmod [OPTIONS] valeur_numérique nom_fichier

La valeur numérique peut prendre 3 ou 4 chiffres. Cependant, dans la plupart des cas, 3 numéros sont utilisés. Les droits de lecture, d'écriture et d'exécution prennent les valeurs suivantes :

  • autorisation de lecture => 4
  • autorisation d'écriture => 2
  • autorisation d'exécution => 1

La somme totale des valeurs des autorisations, c'est-à-dire lire, écrire et exécuter dans chacun des trois segments, représente les autorisations complètes d'un fichier ou d'un répertoire donné.

Qu'entendons-nous par là ?

Supposons que le propriétaire ait des autorisations de lecture, d'écriture et d'exécution, que le groupe ait des autorisations de lecture et d'exécution et que les autres utilisateurs aient uniquement des autorisations de lecture, cela peut être décomposé comme suit :

  • u :   rwx =7
  • g :   r-x =5
  • o :   r–  =4

Par conséquent, nous arrivons à la valeur de 754 comme valeur numérique pour les autorisations de fichier du fichier donné.

Pour attribuer des autorisations de lecture, d'écriture et d'exécution au propriétaire, et des autorisations de lecture uniquement au groupe et aux autres utilisateurs, exécutez la commande :

$ chmod 744 devops.txt

Pour attribuer toutes les autorisations au propriétaire du fichier, les autorisations de lecture et d'exécution au groupe et aucune autorisation aux autres utilisateurs, exécutez :

$ chmod 750 coders.txt

Pour attribuer toutes les autorisations au propriétaire du fichier, lire et écrire les autorisations au groupe et aux autres utilisateurs, exécutez la commande :

$ chmod 755 sysadmin.txt

Exemple 2) Attribution récursive d'autorisations aux répertoires

Lors de l'attribution d'autorisations à des répertoires, utilisez l'indicateur -R pour attribuer de manière récursive des autorisations à ses fichiers et sous-dossiers. Par exemple :

$ chmod 755 -R nom_répertoire

$ chmod 755 -R /home/linuxtechi/data

Exemple 3) Attribuer des autorisations à l'aide de la notation textuelle

Une autre façon d'attribuer des autorisations consiste à utiliser la notation textuelle. Dans cette méthode, la commande chmod prend des drapeaux ou des symboles qui représentent le propriétaire, le groupe, les autres ou tous les utilisateurs ( u, g et o) dans la syntaxe.

La méthode n'est pas aussi simple que la méthode précédente et des précautions doivent être prises pour éviter d'attribuer les mauvaises autorisations.

Voici à quoi ressemble la syntaxe

$ chmod [OPTIONS] [ u g o a ]  [ – + =] [ r, w, x ] fichier

Décomposons cela.

Le premier groupe de paramètres [ u g o a]  spécifie la catégorie d'utilisateurs dont les autorisations changeront

  • u :utilisateur
  • g :groupe
  • o :autre
  • a :tous (cela inclut tout ce qui précède)

Si cet ensemble est omis, l'option par défaut est l'option a.

Le deuxième ensemble d'options - les options de l'opérateur [ - + =] - détermine si des autorisations vont être ajoutées ou supprimées de la catégorie d'utilisateurs. L'option supprimer

  • –    :l'indicateur supprime les autorisations de fichier d'un utilisateur spécifié.
  • +   :cela ajoute/ajoute des autorisations à un utilisateur spécifié.
  • =   :cela attribue des autorisations distinctes aux utilisateurs spécifiés et supprime les autorisations précédentes du segment d'utilisateurs.

Voyons quelques exemples :

Exemple 4) Attribuer des autorisations de lecture à un fichier

$ chmod o=r nom de fichier

La commande ci-dessus attribue aux autres utilisateurs désignés par le symbole « o » des autorisations de lecture uniquement sur le fichier et supprime les autorisations antérieures attribuées au segment « autres ». Prenez un file1.txt qui a les permissions suivantes

Pour attribuer des autorisations de lecture de segment "autres ( o )" uniquement, exécutez

$ sudo chmod o=r file1.txt

À partir de la sortie, nous pouvons voir que le segment "autres" s'est vu attribuer des autorisations de lecture tout en perdant les autorisations d'exécution. Cela implique que l'opérateur =attribue de nouvelles autorisations tout en effaçant en même temps les autorisations précédentes.

Exemple 5) Attribuer des autorisations d'exécution au propriétaire du fichier et du groupe

$ sudo chmod ug+x nom de fichier

La commande ci-dessus ajoute des autorisations d'exécution au propriétaire et au groupe du fichier. En utilisant notre fichier, cela devient :

$ sudo chmod ug+x file1.txt

Exemple 6) Attribuer différentes autorisations à un fichier, un groupe et d'autres

$ sudo chmod u=rwx,g=rw,o=r nom de fichier

La commande ci-dessus attribue toutes les autorisations au propriétaire du fichier, les autorisations de lecture et d'écriture au groupe et uniquement les autorisations de lecture aux autres utilisateurs.

REMARQUE : Si aucune autorisation n'est spécifiée après l'opérateur =, toutes les autorisations du segment d'utilisateurs sont supprimées.

Exemple 7) Supprimer toutes les autorisations pour les autres utilisateurs

$ sudo chmod o=nom de fichier

La commande ci-dessus supprime toutes les autorisations du segment utilisateur "autres" pour le fichier spécifié.

La commande a le même effet que la commande ci-dessous :

$ sudo chmod o-rwx nom de fichier

Exemple 8) Attribuer des autorisations à l'aide d'un fichier de référence

Un autre moyen pratique et pratique d'attribuer des autorisations de fichiers consiste à utiliser un fichier de référence. Dans cette méthode, vous utilisez l'option –reference=ref_file pour définir les autorisations d'un fichier afin qu'elles soient identiques à celles d'un autre fichier de référence. Utilisez la syntaxe ci-dessous

$ sudo chmod –reference=ref_file nom du fichier

Par exemple, pour définir les autorisations de fichier de file2.txt afin qu'elles soient identiques à celles de file1.txt, exécutez la commande :

$ sudo chmod --reference=file1.txt file2.txt

Le fichier de référence est file1.txt tandis que file2.txt est le fichier qui prendra les permissions de fichier pour le fichier de référence.

Exemple 9) Attribuer l'autorisation d'exécution aux répertoires uniquement

Supposons que nous ayons un répertoire contenant des fichiers et des sous-répertoires et que nous souhaitions attribuer une autorisation d'exécution uniquement sur les répertoires sans toucher aux fichiers. Donc, cela peut être réalisé en utilisant la commande chmod suivante,

$ chmod a+X *

Si vous avez bien remarqué, nous avons utilisé la majuscule X pour l'autorisation d'exécution, la commande ci-dessus définira l'autorisation d'exécution sur tous les répertoires de notre répertoire de travail actuel.

Conclusion

Cela tire le rideau sur notre sujet. Nous avons examiné la commande chmod et avons vu divers exemples dans lesquels la commande peut être utilisée pour modifier les autorisations de fichiers.


Linux
  1. Autorisations Linux :une introduction à chmod

  2. Exemples de commandes Linux tail

  3. Exemples de commande "chmod" de base sous Linux

  4. ln Exemples de commandes sous Linux

  5. file Exemples de commandes sous Linux

Commande Linux WC avec exemples

Commande Chmod sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Exemples de commandes Linux chmod

Exemples de commande Linux cat

Exemples de commande Linux gzip