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.