GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer les autorisations Linux pour les utilisateurs, les groupes et autres

La gestion de l'accès aux ressources est une tâche fondamentale pour les administrateurs système. Cette responsabilité comprend trois composants :les identités, les ressources et les autorisations. Cet article couvre plusieurs commandes de gestion d'utilisateurs, de groupes et de fichiers pour contrôler l'accès aux ressources. L'article utilise un "Comment puis-je…?" format, et cela suppose que vous avez quelques ressources avec lesquelles travailler. Plus précisément, je couvre les sujets suivants :

  • Créer des répertoires et des fichiers
  • Gérer la propriété et les groupes associés
  • Définition des autorisations avec les modes absolu et symbolique

Mettre en place une aire de jeux

Je suis dans l'informatique depuis environ 25 ans, et la plupart de ce temps a été passé en tant que formateur technique. Cela signifie que les choses que j'écris sont généralement structurées comme une sorte de laboratoire ou une autre opportunité pratique. C'est juste comment je couvre le matériel. Dans cet esprit, je suppose que vous avez quelques identités et ressources à expérimenter pendant que vous lisez le reste de l'article. Vous pouvez utiliser les commandes suivantes pour configurer un terrain de jeu. Il est préférable de le faire sur une machine virtuelle plutôt que sur votre machine Linux personnelle, mais ces tâches sont relativement inoffensives.

Créez deux nouveaux utilisateurs et deux nouveaux groupes avec lesquels travailler. Notez que vous n'avez pas besoin de configurer de mots de passe pour les utilisateurs dans cet exercice, car vous ne vous connecterez pas avec ces comptes.

# useradd user01
# useradd user02
# groupadd groupA
# groupadd groupB

Remarque  :Vous utiliseriez le passwd user01 commande pour définir le mot de passe de l'utilisateur.

Dans votre répertoire personnel, créez un nouveau répertoire nommé playground :

# mkdir playground

Passez au ~/playground répertoire en utilisant le cd commande. Vous êtes prêt à utiliser les commandes et les concepts ci-dessous.

Lorsque vous avez terminé l'article et appris les techniques que j'ai couvertes, supprimez les deux comptes d'utilisateurs, les groupes et le répertoire du terrain de jeu. Utilisez rm -fR /playground , userdel user01 , et groupdel groupA pour supprimer les ressources.

Comment créer des répertoires et des fichiers ?

Utilisez le mkdir commande pour créer des répertoires. Le touch La commande est l'une des nombreuses façons de créer des fichiers.

Comment créer un répertoire nommé Resources ?

# mkdir Resources

Comment créer un chemin de répertoire (une série de répertoires qui n'existent pas encore) ?

# mkdir -p Resources/data/2020data

Remarque :Le but ici est de créer les 2020data répertoire, mais les data du chemin donné répertoire n'existe pas encore. Le -p L'option crée les répertoires parents nécessaires pour compléter le chemin.

Comment créer un fichier nommé file1 ?

# touch file1

Comment créer plusieurs fichiers à la fois ?

# touch file2 file3 file4

Comment gérer la propriété et les groupes ?

Dans le répertoire du terrain de jeu, affichez le propriétaire actuel et le groupe associé aux Resources répertoire et les fichiers.

Comment afficher les autorisations, les propriétaires et les groupes ?

# ls -l

Le ls -l La commande affiche le contenu du répertoire au format long. Le format long contient à la fois les autorisations et la propriété. Vous pouvez voir que le compte d'utilisateur qui a créé les ressources possède également ces ressources. L'association de groupe est également le groupe principal de cet utilisateur.

Comment changer l'utilisateur/propriétaire associé à file1 ?

# chown user02 file1

Comment changer le groupe associé à file1 ?

# chown :groupA file1

Comment changer le propriétaire et le groupe en même temps pour file2 ?

# chown user02:groupA file2

Il existe un chgrp spécifique commande, mais je préfère ne mémoriser qu'une seule commande (chown ) et appliquez-le aux deux fonctions (associations d'utilisateurs et de groupes) plutôt que chown pour l'utilisateur et ensuite rappeler chgrp pour le groupe.

Alors, comment utiliser chgrp ?

# chgrp groupB file1

Comment changer l'utilisateur/le groupe d'un répertoire et de tout son contenu ?

# chown -R user01:groupA Resources

La tâche ci-dessus fournit un récursif configuration. Techniquement, les commandes récursives sont répétées sur chaque objet spécifié. En effet, récursif signifie "ceci et tout ce qu'il contient". Dans l'exemple ci-dessus, vous configurez l'utilisateur/groupe associé pour les Resources répertoire et tout ce qu'il contient. Sans le -R option, vous n'affecterez que les Resources répertoire lui-même, mais pas son contenu.

[ Les lecteurs ont également aimé : Une introduction aux listes de contrôle d'accès (ACL) Linux ]

Comment gérer les autorisations ?

Le changement de mode ou chmod La commande définit les autorisations. La syntaxe est simple :

chmod permissions resource-name

Voici deux exemples de manipulation des autorisations pour file2 :

# chmod 740 file2
# chmod u=rwx,g=r,o-rwx file2

Mais attendez! Ceux-ci semblent être des exemples radicalement différents (ils ne le sont pas, en fait). Que sont toutes ces lettres et tous ces chiffres ?

Nous devons discuter du mode absolu et mode symbolique .

Comment utiliser le mode absolu ?

Le mode absolu est l'une des deux manières de spécifier des autorisations. J'ai vu ce mode appelé mode octal ou numérique, mais le terme que j'ai appris était absolu . Ce terme a également le plus de sens pour moi car il s'agit d'une déclaration absolue des autorisations souhaitées. J'ai toujours dit à mes étudiants que cela semblait être le plus complexe des deux modes, mais c'est en fait le plus simple. Habituellement, ils étaient d'accord.

Chaque niveau d'accès (lecture, écriture, exécution) a une valeur octale :

Niveau d'accès Valeur octale
Lire 4
Écrire 2
Exécuter 1

Chaque identité (utilisateur, groupe, autres) a une position :

Identité Poste
Utilisateur Premier ou le plus à gauche
Groupe Moyen
Autres Le dernier ou le plus à droite

La syntaxe du mode absolu indique les autorisations souhaitées de gauche à droite.

Comment accorder à l'utilisateur (propriétaire) la lecture, l'écriture et l'exécution, le groupe en lecture seule et tous les autres aucun accès à file2 en utilisant le mode absolu ?

# chmod 740 file2

Les trois valeurs d'autorisation sont associées à des identités :
    ugo
    740

  • Les 7 est attribué à l'utilisateur et est la somme de 4+2+1 ou lecture+écriture+exécution (accès complet)
  • Les 4 est affecté au groupe et est la somme de 4+0+0 (lecture seule)
  • Le 0 est attribué à d'autres et est la somme de 0+0+0 (pas d'accès)

Dans cet exemple, l'utilisateur a rwx , le groupe a r uniquement, et tous les autres n'ont aucun accès vers file2 .

Prenons un autre exemple.

Comment puis-je accorder à l'utilisateur (propriétaire) la lecture et l'écriture, le groupe en lecture seule et tous les autres en lecture seule à file2 ?

# chmod 644 file2
  • L'utilisateur a 6 (lire et écrire)
  • Le groupe compte 4 (lecture seule)
  • Tous les autres ont 4 (lecture seule)

Je trouve cela plus facile car il n'y a pas de calculs impliqués. Je ne suis pas concerné par l'ajout ou la soustraction d'autorisations spécifiques en fonction des paramètres actuels. Au lieu de cela, je dis, "définir les autorisations sur ceci", et c'est le résultat final que j'obtiens. C'est une déclaration absolue.

Comment définir des autorisations pour les Resources répertoire et tout son contenu en utilisant le mode absolu ?

# chmod -R 744 Resources

Comment utiliser le mode symbolique ?

Le mode symbolique utilise plus de symboles, mais les symboles sont plus simples à comprendre. C'est intéressant pour les administrateurs système qui découvrent les autorisations Linux standard.

Chaque niveau d'accès a un symbole :

Niveau d'accès Symbole
Lire r
Écrire w
Exécuter x

Chaque identité a un symbole :

Identité Symbole
Utilisateur u
Groupe g
Autres o

Il existe également des opérateurs pour manipuler les permissions :

Tâche Opérateur
Accorder un niveau d'accès +
Supprimer un niveau d'accès -
Définir un niveau d'accès =

Le chmod général la syntaxe de la commande est la même :

command permissions directory/file

Voici un exemple :

Comment supprimer les autorisations de lecture des autres pour file2 en utilisant le mode symbolique ?

# chmod o-r file2

Cet exemple supprime (- ) la lecture (r ) permission des autres (o ) pour file2 .

Voici un autre exemple simple :

Comment puis-je accorder les autorisations de lecture et d'écriture au groupe pour file2 ?

# chmod g+rw file2

Celui-ci donne (+ ) lire et écrire (rw ) au groupe (g ) pour file2 .

Comment définir des autorisations pour un répertoire et tout son contenu en utilisant le mode symbolique ?

# chmod -R o=rwx,g+rw,o-rwx Resources

Autorisations spéciales et listes de contrôle d'accès

La discussion ci-dessus couvre les autorisations Linux standard, en appliquant rwx à l'utilisateur, au groupe et à tous les autres. Linux a cependant beaucoup plus de flexibilité. Des autorisations spéciales permettent aux utilisateurs d'exécuter des applications avec d'autres informations d'identification, de contrôler l'héritage des associations de groupe et d'empêcher les fichiers d'être modifiés accidentellement. Consultez cet excellent article sur les autorisations spéciales.

Linux a également un moyen d'appliquer différentes autorisations pour différents utilisateurs et groupes. Les listes de contrôle d'accès (ACL) permettent aux administrateurs système de définir des autorisations pour plus d'un utilisateur et d'un groupe, ce qui ajoute beaucoup plus de flexibilité aux autorisations standard. Par exemple, user01 peut être accordé rw- vers file1 , tandis que user02 peut être accordé r-- vers file1 . Voici un excellent article sur les ACL.

[ Cours gratuit :Présentation technique de Red Hat Satellite. ] 

Récapitulez

La création de ressources, la gestion des utilisateurs et la définition des autorisations sont des tâches fondamentales pour les utilisateurs de Linux. Mon objectif était de fournir un guide rapide et facile basé sur des questions ou des tâches courantes que nous devons tous accomplir régulièrement. Si vous débutez avec Linux, une solide maîtrise des huit commandes décrites ci-dessus facilitera grandement la vie de votre administrateur système.


Linux
  1. Comment créer un répertoire partagé pour tous les utilisateurs sous Linux

  2. Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

  3. Comment gérer l'expiration et le vieillissement du mot de passe utilisateur sous Linux

  4. Comment gérer et répertorier les services sous Linux

  5. Gérer les utilisateurs Linux et les groupes Linux

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment répertorier les utilisateurs et les groupes sous Linux

Comment créer et gérer de nouveaux utilisateurs sous Linux

Comment créer des utilisateurs et des groupes dans CentOS7 ?

Comment détecter et gérer les appareils sous Linux

Comment installer et configurer le sous-système Windows pour Linux