GNU/Linux >> Tutoriels Linux >  >> Linux

Autorisations Linux 101

Comprendre les autorisations Linux et savoir comment contrôler quels utilisateurs ont accès aux fichiers est une compétence fondamentale pour l'administration système.

Cet article couvrira les autorisations standard des systèmes de fichiers Linux, approfondira les autorisations spéciales et conclura avec une explication des autorisations par défaut à l'aide de umask .

Comprendre le résultat de la commande ls

Avant de pouvoir parler de la façon de modifier les autorisations, nous devons savoir comment les afficher. Les ls commande avec l'argument de longue liste (-l ) nous donne beaucoup d'informations sur un fichier.

$ ls -lAh
total 20K
-rwxr-xr--+ 1 root root    0 Mar  4 19:39 file1
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file10
-rwxrwxr--+ 1 root root    0 Mar  4 19:39 file2
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file8
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file9
drwxrwxrwx. 2 root root 4.0K Mar  4 20:04 testdir

Pour comprendre ce que cela signifie, décomposons la sortie concernant les autorisations en sections individuelles. Il sera plus facile de référencer chaque section individuellement.

Jetez un œil à chaque composant de la ligne finale dans le résultat ci-dessus :

drwxrwxrwx. 2 root root 4.0K Mar  4 20:04 testdir
Section 1 Section 2 Section 3 Section 4 Section 5 Section 6 Section 7
d rwx rwx rwx  . racine racine

La section 1 (à gauche) révèle de quel type de fichier il s'agit.

d Répertoire
- Fichier normal
l Un lien symbolique

La page d'informations pour ls contient une liste complète des différents types de fichiers.

Chaque fichier a trois modes d'accès :

  • le propriétaire
  • le groupe
  • tous les autres

Les sections 2, 3 et 4 font référence aux autorisations d'utilisateur, de groupe et "autres utilisateurs". Et chaque section peut inclure une combinaison de r (lire), w (écrire) et x autorisations (exécutables).

Chacune des autorisations se voit également attribuer une valeur numérique, ce qui est important lorsqu'il s'agit de la représentation octale des autorisations.

Autorisation Valeur octale
Lire 4
Écrire 2
Exécuter 1

La section 5 détaille toutes les méthodes d'accès alternatives, telles que SELinux ou la liste de contrôle d'accès aux fichiers (FACL).

Méthode Personnage
Aucune autre méthode  -
SELinux  .
FACL  +
Toute combinaison de méthodes  +

Les sections 6 et 7 sont les noms du propriétaire et du groupe, respectivement.

Utiliser chown et chmod

La commande chown

Le chown La commande (modifier la propriété) est utilisée pour modifier la propriété de l'utilisateur et du groupe d'un fichier.

Pour modifier à la fois l'utilisateur et la propriété du groupe du fichier foo pour raciner , nous pouvons utiliser ces commandes :

$ chown root:root foo
$ chown root: foo

Exécuter la commande avec l'utilisateur suivi de deux-points ( : ) définit à la fois la propriété de l'utilisateur et du groupe.

Pour définir uniquement la propriété de l'utilisateur du fichier foo à la racine utilisateur, saisissez :

$ chown root foo

Pour modifier uniquement la propriété du groupe du fichier foo , faites précéder le groupe de deux points :

$ chown :root foo

La commande chmod

Le chmod (modifier le mode) contrôle les autorisations de fichier pour le propriétaire, le groupe et tous les autres utilisateurs qui ne sont ni le propriétaire ni une partie du groupe associé au fichier.

Le chmod La commande peut définir des autorisations en format octal (par exemple, 755, 644, etc.) et symbolique (par exemple, u+rwx, g-rwx, o=rw).

La notation octale attribue 4 "points" à lire , 2 pour écrire , et 1 pour exécuter . Si nous voulons attribuer à l'utilisateur lire autorisations, nous attribuons 4 au premier emplacement, mais si nous voulons ajouter écrire autorisations, nous devons ajouter 2. Si nous voulons ajouter exécuter , puis nous ajoutons 1. Nous procédons ainsi pour chaque type d'autorisation :propriétaire, groupe et autres.

Par exemple, si nous voulons attribuer read , écrire , et exécuter au propriétaire du fichier, mais seulement lu et exécuter pour les membres du groupe et tous les autres utilisateurs, nous utiliserions 755 au format octal. Ce sont tous des bits de permission pour le propriétaire (4+2+1), mais seulement un 4 et un 1 pour le groupe et les autres (4+1).

La répartition pour cela est :4 + 2 + 1 =7 ; 4+1=5 ; et 4+1=5.

Si nous voulions attribuer read et écrire au propriétaire du fichier mais seulement lu aux membres du groupe et à tous les autres utilisateurs, nous pourrions utiliser chmod comme suit :

$ chmod 644 foo_file

Dans les exemples ci-dessous, nous utilisons la notation symbolique dans différents groupements. Notez les lettres u , g , et o représente l'utilisateur , groupe , et autre . Nous utilisons u , g , et o en conjonction avec + , - , ou = pour ajouter, supprimer ou définir des bits d'autorisation.

Pour ajouter l'exécution bit au jeu d'autorisations de propriété :

$ chmod u+x foo_file

Pour supprimer lire , écrire , et exécuter des membres du groupe :

$ chmod g-rwx foo_file

Pour définir la propriété de tous les autres utilisateurs sur lire et écrire :

$ chmod o=rw

Les bits spéciaux :définir l'UID, définir le GID et les bits collants

En plus des autorisations standard, il existe quelques bits d'autorisation spéciaux qui présentent des avantages utiles.

Définir l'ID utilisateur (suid)

Quand suid est défini sur un fichier, une opération s'exécute en tant que propriétaire du fichier, et non en tant qu'utilisateur exécutant le fichier. Un bon exemple de ceci est le passwd commande. Il a besoin du suid bit à définir pour que la modification d'un mot de passe s'exécute avec les autorisations root.

$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd

Un exemple de réglage du suid bit serait :

$ chmod u+s /bin/foo_file_name

Définir l'ID de groupe (sgid)

Le sgid bit est similaire au suid bit dans le sens où les opérations sont effectuées sous la propriété du groupe du répertoire au lieu de l'utilisateur exécutant la commande.

Un exemple d'utilisation de sgid serait si plusieurs utilisateurs travaillent sur le même répertoire, et chaque fichier créé dans le répertoire doit avoir les mêmes autorisations de groupe. L'exemple ci-dessous crée un répertoire appelé collab_dir , définit le sgid bit et change la propriété du groupe en webdev .

$ mkdir collab_dir
$ chmod g+s collab_dir
$ chown :webdev collab_dir

Désormais, tout fichier créé dans le répertoire appartiendra au groupe webdev au lieu de l'utilisateur qui a créé le fichier.

$ cd collab_dir
$ touch file-sgid
$ ls -lah file-sgid
-rw-r--r--. 1 root webdev 0 Jun 12 06:04 file-sgid

Le morceau "collant"

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Le bit collant indique que seul le propriétaire d'un fichier peut supprimer le fichier, même si les autorisations de groupe le permettraient autrement. Ce paramètre est généralement le plus logique sur un répertoire commun ou collaboratif tel que /tmp . Dans l'exemple ci-dessous, le t dans l'exécution colonne de tous les autres l'ensemble d'autorisations indique que le sticky bit a été appliqué.

$ ls -ld /tmp
drwxrwxrwt. 8 root root 4096 Jun 12 06:07 /tmp/

Gardez à l'esprit que cela n'empêche pas quelqu'un de modifier le fichier; cela les empêche simplement de supprimer le contenu d'un répertoire.

Nous définissons le sticky bit avec :

$ chmod o+t foo_dir

Par vous-même, essayez de définir le sticky bit sur un répertoire et donnez-lui des autorisations de groupe complètes afin que plusieurs utilisateurs puissent lire, écrire et exécuter sur le répertoire car ils appartiennent au même groupe.

À partir de là, créez des fichiers pour chaque utilisateur, puis essayez de les supprimer comme l'autre.

Si tout est correctement configuré, un utilisateur ne devrait pas pouvoir supprimer des utilisateurs de l'autre utilisateur.

Notez que chacun de ces bits peut également être défini au format octal avec SUID=4, SGID=2 et Sticky=1.

$ chmod 4744
$ chmod 2644
$ chmod 1755

Majuscule ou minuscule ?

Si vous définissez les bits spéciaux et voyez un S majuscule ou T au lieu de minuscules (comme nous l'avons vu jusqu'à présent), c'est parce que le bit d'exécution sous-jacent n'est pas présent. Pour illustrer, l'exemple suivant crée un fichier avec le sticky bit défini. Nous pouvons ensuite ajouter/supprimer le bit d'exécution pour démontrer le changement de casse.

$ touch file cap-ST-demo
$ chmod 1755 cap-ST-demo
$ ls -l cap-ST-demo
-rwxr-xr-t. 1 root root 0 Jun 12 06:16 cap-ST-demo

$ chmod o-x cap-X-demo
$ ls -l cap-X-demo
-rwxr-xr-T. 1 root root 0 Jun 12 06:16 cap-ST-demo

Définition conditionnelle du bit d'exécution

À ce stade, nous avons défini l'exécution bit en utilisant un x minuscule , qui le fixe sans se poser de questions. Nous avons une autre option :utiliser un X majuscule au lieu de minuscules définira le exécuter bit uniquement s'il est déjà présent quelque part dans le groupe d'autorisations. Cela peut être un concept difficile à expliquer, mais la démonstration ci-dessous aidera à l'illustrer. Notez ici qu'après avoir essayé d'ajouter le execute bit aux privilèges du groupe, il n'est pas appliqué.

$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+X cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file

Dans cet exemple similaire, nous ajoutons d'abord le bit d'exécution aux autorisations de groupe en utilisant la minuscule x puis utilisez le X majuscule pour ajouter des autorisations pour tous les autres utilisateurs. Cette fois, le X majuscule définit les autorisations.

$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+x cap-X-file
$ ls -l cap-X-file
-rw-r-xr--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+x cap-X-file
$ chmod o+X cap-X-file
ls -l cap-X-file
-rw-r-xr-x. 1 root root 0 Jun 12 06:31 cap-X-file

Comprendre umask

Le umask masque (ou "bloque") les bits du jeu d'autorisations par défaut afin de définir les autorisations pour un fichier ou un répertoire. Par exemple, un 2 dans le umask la sortie indique qu'elle bloque l'écriture bit d'un fichier, au moins par défaut.

Utiliser umask commande sans aucun argument nous permet de voir le umask actuel paramètre. Il y a quatre colonnes :la première est réservée au suid, sgid ou sticky bit spécial, et les trois autres représentent le propriétaire, le groupe et d'autres autorisations.

$ umask
0022

Pour comprendre ce que cela signifie, nous pouvons exécuter umask avec un -S (comme indiqué ci-dessous) pour obtenir le résultat du masquage des bits. Par exemple, à cause des 2 valeur dans la troisième colonne, le écrire le bit est masqué du groupe et des autres sections ; seulement lire et exécuter peut être attribué pour ceux-là.

$ umask -S
u=rwx,g=rx,o=rx

Pour voir quel est le jeu d'autorisations par défaut pour les fichiers et les répertoires, définissons notre umask à tous les zéros. Cela signifie que nous ne masquons aucun bit lorsque nous créons un fichier.

$ umask 000
$ umask -S
u=rwx,g=rwx,o=rwx

$ touch file-umask-000
$ ls -l file-umask-000
-rw-rw-rw-. 1 root root 0 Jul 17 22:03 file-umask-000

Maintenant, lorsque nous créons un fichier, nous voyons que les autorisations par défaut sont lire (4) et écrire (2) pour toutes les sections, ce qui équivaudrait à 666 en représentation octale.

Nous pouvons faire la même chose pour un répertoire et voir que ses autorisations par défaut sont 777. Nous avons besoin de l'exécution peu sur les répertoires afin que nous puissions les parcourir.

$ mkdir dir-umask-000
$ ls -ld dir-umask-000
drwxrwxrwx. 2 root root 4096 Jul 17 22:03 dir-umask-000/

Conclusion

Il existe de nombreuses autres manières pour un administrateur de contrôler l'accès aux fichiers d'un système. Ces autorisations sont fondamentales pour Linux, et nous pouvons nous appuyer sur ces aspects fondamentaux. Si votre travail vous emmène dans les FACL ou SELinux, vous verrez qu'ils s'appuient également sur ces premières règles d'accès aux fichiers.


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

  2. Autorisations Linux :une introduction à chmod

  3. Linux - Modifier les autorisations de dossier ?

  4. Autorisations de fichiers sous Linux avec exemple

  5. Vérifiez les autorisations de fichiers Linux avec ls

Mot de passe par défaut Kali Linux

Comprendre les autorisations de fichiers Linux

Commande Umask sous Linux

Commande Chmod sous Linux (autorisations de fichiers)

Comment modifier les autorisations sous Linux

Commande Chmod sous Linux