GNU/Linux >> Tutoriels Linux >  >> Linux

Modification des autorisations Linux

Cet article décrit comment modifier les autorisations sur un serveur cloud Linux® en utilisant le chmod commande.

Qu'est-ce que la commande chmod ?

En termes simples, chmod signifie changer de mode et est utilisé pour définir les autorisations de fichiers ou de répertoires sous Linux. Les utilisateurs root utilisent chmod pour déterminer quels utilisateurs, groupes et autres peuvent accéder aux fichiers ou aux répertoires.

Typiquement, vous utilisez le chmod commande dans les formats suivants :

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

L'utilisation des options avec le chmod la commande est facultative. Le deuxième exemple reçoit l'utilisation la plus fréquente. Sans option présente, chmod modifie les permissions du fichier ou du répertoire désigné dans la commande.

Autorisations

Dans un système Linux, vous pouvez utiliser des autorisations pour faire référence au propriétaire du fichier ou du répertoire (utilisateur), au groupe qui possède le fichier ou le répertoire (groupe) ou à toute autre personne qui accède au fichier ou au répertoire (autres).

Indiquez ces autorisations en utilisant la notation suivante :

  • caractères alphanumériques (r, w, x)
  • nombres octaux (0-7)

Par exemple, vous avez un fichier appelé example.txt , et vous souhaitez définir les autorisations suivantes :

  • L'utilisateur peut lire, écrire et exécuter le fichier.
  • Les membres du groupe peuvent lire et exécuter, mais pas écrire le fichier.
  • Toute autre personne ne peut que lire le fichier.

L'option de commande suivante définit les autorisations souhaitées pour example.txt :

$ chmod u=rwx,g=rx,o=r example.txt

Cette option utilise des caractères alphanumériques pour désigner les utilisateurs qui peuvent accéder au fichier ainsi que les autorisations que vous souhaitez définir pour ces utilisateurs désignés.

  • La lettre 'u' =utilisateur
  • La lettre 'g' =groupe
  • La lettre 'o' =autre
  • La lettre 'r' =lire
  • La lettre 'w' =écrire
  • La lettre 'x' =exécuter

L'exemple suivant montre comment Linux décrit les autorisations accordées dans l'exemple précédent :

-rwxr-xr--

Les trois premières lettres (rwx) sont les autorisations de l'utilisateur. Les trois secondes (r-x) représentent les autorisations du groupe et les trois dernières (r–) représentent les autorisations des autres.

Ensuite, nous avons l'option octal pour notre example.txt exercice :

$ chmod 754 example.txt

Dans cet exemple, les nombres 7, 5 et 4 représentent chacun l'utilisateur, le groupe et les autres autorisations. La première position numérique détermine l'autorisation de l'utilisateur, le deuxième numéro détermine les autorisations du groupe et le troisième numéro attribue les autorisations aux autres.

Ces numéros ne sont pas choisis au hasard. L'addition des nombres 4, 2, 1 et 0 détermine les autorisations. Les numéros ont les affectations suivantes :

  • 4 signifie "lire"
  • 2 signifie "écrire"
  • 1 signifie "exécuter"
  • 0 signifie "aucun"

Par conséquent, dans notre exemple précédent, le 7 est déterminé à partir de la combinaison de lecture (4), écriture (2) et exécution (1) :4 + 2 + 1 =7. Le 5 est obtenu en ajoutant lecture (4), aucun (0) et exécuter (1) :4 + 0 + 1 =5. Enfin, le 4 est une combinaison de lire (4), aucun (0) et aucun (0) :4 + 0 + 0 =4 .

Options

Vous n'avez généralement pas besoin d'utiliser les options dans le chmod commande, mais si vous le faites, vous pouvez utiliser les options suivantes avec chmod :

  • -c , --changes  :Donne une sortie détaillée pour les modifications apportées
  • -f , --silent , --silent  :désactive la plupart des messages d'erreur
  • -v , --verbose  :Affiche un message détaillé pour chaque action traitée
  • --no-preserve-root :Ignore la déférence normalement accordée par défaut au répertoire / (racine)
  • --preserve-root :N'opère pas de manière récursive sur le répertoire / (racine)
  • --reference=RFILE  :définit les autorisations pour qu'elles correspondent à celles de RFILE, en ignorant tout MODE spécifique
  • -R , --recursive :Les modifications apportées aux fichiers ou aux répertoires sont appliquées de manière récursive
  • --help :Affiche le message d'aide, puis quitte
  • --version  :affiche les informations de version, puis quitte

Extras

En plus des permissions déjà discutées, le chmod La commande peut définir trois autres autorisations spéciales sous Linux.

  • SUID (Définir l'ID utilisateur)
  • SGID (Définir l'ID de groupe)
  • Bout collant

SUID

Un s dans le rwx de l'utilisateur ensemble d'autorisations, remplaçant le x , représente cette autorisation, comme illustré dans l'exemple suivant :

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

Les trois premières lettres de rwsr-xr-x représentent les autorisations de l'utilisateur. Notez qu'au lieu d'un x il y a un s dans les trois emplacements d'autorisation de l'utilisateur. Au lieu d'afficher x pour execute, il y a un s dans le lieu d'exécution. Pourquoi est-ce ?

Remarque : Le 4 devant le jeu d'autorisations octal habituel représente cette autorisation. Donc au lieu de 755 , l'autorisation est écrite sous la forme 4755 .

Vous devez utiliser cette option avec prudence car cette autorisation particulière permet à un utilisateur d'exécuter un programme binaire comme s'il en était le propriétaire même s'il ne l'est pas. L'exemple le plus connu est le passwd commande.

Dans le cas de passwd , l'utilisateur peut exécuter le programme même si le programme binaire appartient à root. Cependant, parce que passwd est défini comme SUID par défaut, il s'exécute toujours en tant qu'utilisateur root.

Si un utilisateur régulier a des permissions SUID sur d'autres programmes binaires, il peut exécuter des commandes en tant que root sans avoir root autorisations. Il permet une élévation anormale des privilèges qui nécessitent généralement sudo privilèges d'accès.

Les autorisations SUID peuvent affecter une précaution intégrée au système d'exploitation Linux sous la forme de binaires uniquement. Cela n'affecte pas les scripts.

SGID

Un s dans le rwx du groupe ensemble d'autorisations, remplaçant le x dans t r-x segment, représente l'autorisation SGID, comme illustré dans l'exemple suivant :

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

Ce s se trouve dans le deuxième groupe de trois autorisations, que nous avons découvert plus tôt dans les autorisations du groupe lorsqu'elles sont écrites en style alphanumérique. Dans le rendu octal, un 2 devant les trois autres numéros d'autorisation octaux indique cette autorisation. Au lieu de 755 , écrivez ceci sous la forme 2755 .

Comme SUID, les autorisations SGID ne fonctionnent que sur les binaires. Ils ne fonctionnent pas sur les scripts. Quant à ce que fait SGID, il permet aux membres du groupe non privilégiés d'exécuter un binaire comme s'ils étaient l'utilisateur root.

En règle générale, vous pouvez utiliser cette autorisation sur les répertoires auxquels les membres du groupe doivent avoir accès dans le répertoire partagé par le groupe. Tous les fichiers créés dans ce répertoire ont le même propriétaire de groupe, quel que soit le membre du groupe qui a créé le fichier.

Point collant

Un t dans le rwx des autres ensemble d'autorisations, remplaçant le x , représente cette autorisation, comme illustré dans l'exemple suivant :

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

Remarquez le t dans la dernière série de trois lettres. L'équivalent octal du t est un 1 devant les trois octaux de permission. Au lieu de 777 , écrivez ceci sous la forme 1777 .

Que fait ce morceau collant? En règle générale, vous utilisez cette autorisation sur un tmp répertoire, et sa fonction est d'empêcher les utilisateurs de supprimer des fichiers appartenant à d'autres utilisateurs. Habituellement, si un groupe a un accès en écriture à un répertoire, tout utilisateur de ce groupe peut supprimer n'importe quel fichier de ce répertoire. La permission sticky bit arrête cela. Seul le créateur du fichier peut le supprimer.

En tant que meilleure pratique, vous devez définir l'autorisation sticky bit sur tout répertoire dont les autres autorisations sont octal 7 (lecture, écriture, exécution). Dans notre 754 exemple, vous voulez utiliser la permission sticky bit si les octals sont 757 où 7 est le troisième octal (représentant la permission des autres).

Aide-mémoire sur les autorisations pour les fichiers et les répertoires

Voici un aide-mémoire rapide expliquant chaque partie de l'exemple de sortie :

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • - :Le - au début vous indique qu'il s'agit d'un fichier. Un d au début indique un répertoire.
  • rwx  :les trois premières lettres représentent les autorisations du propriétaire du fichier et signifient que le propriétaire peut lire, écrire et exécuter le fichier example.txt.
  • rw-  :les trois deuxièmes lettres représentent les autorisations du groupe et signifient que les membres du groupe peuvent lire et écrire dans le fichier, mais qu'ils ne peuvent pas l'exécuter.
  • r-- :Les trois troisièmes lettres représentent les autorisations des autres et signifient que toute personne qui n'est pas le propriétaire ou dans le groupe propriétaire du fichier ne peut que lire le fichier. Ils ne peuvent pas écrire dans le fichier ni exécuter le fichier.
  • rack :Le propriétaire du fichier.
  • space :Le propriétaire du groupe.
  • 123G :La taille du fichier en gigaoctets. Un M dénoterait des mégaoctets, et un K dénoterait des kilo-octets.
  • Feb 03 15:36  :Indique la date et l'heure auxquelles le fichier a été modifié pour la dernière fois.
  • example.txt :Le nom du fichier. Si vous l'indiquez comme "/exemple", il s'agit du nom du répertoire.

Linux
  1. Autorisations Linux 101

  2. Qu'est-ce qu'Umask sous Linux

  3. Bases des autorisations de fichiers Linux

  4. Comment utiliser la commande chmod (changer de mode) sous Linux

  5. chmod :modification des autorisations du répertoire Opération non autorisée

Comment modifier récursivement les autorisations de fichiers sous Linux

Comment modifier les autorisations sous Linux

Commande Chmod sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Apprendre l'utilisation de la commande chmod (changer de mode) sous Linux

Exemples de commandes Linux chmod