107.1 Leçon 2
Certification : |
LPIC-1 |
---|---|
Version : |
5.0 |
Thème : |
107 Tâches administratives |
Objectif : |
107.1 Gérer les comptes utilisateurs et les groupes ainsi que les fichiers système correspondants |
Leçon : |
2 sur 2 |
Introduction
Les outils en ligne de commande présentés dans la leçon précédente ainsi que les applications graphiques fournies par chaque distribution qui effectuent les mêmes tâches mettent à jour une série de fichiers qui stockent les informations relatives aux utilisateurs et aux groupes.
Ces fichiers sont situés dans le répertoire /etc/
. Les voici :
/etc/passwd
-
Un fichier de sept champs délimités par deux points contenant des informations de base sur les utilisateurs.
/etc/group
-
Un fichier de quatre champs délimités par deux points contenant des informations de base sur les groupes.
/etc/shadow
-
Un fichier de neuf champs délimités par deux points contenant les mots de passe chiffrés des utilisateurs.
/etc/gshadow
-
Un fichier de quatre champs délimités par deux points contenant les mots de passe chiffrés des groupes.
Même si ces quatre fichiers sont au format texte simple, ils ne doivent pas être édités directement, mais toujours à l’aide des outils fournis par votre distribution.
/etc/passwd
Ce fichier lisible par tous contient une liste d’utilisateurs, chacun sur une ligne distincte. Chaque ligne est constituée de sept champs délimités par deux points :
- Nom d’utilisateur
-
Le nom utilisé lorsque l’utilisateur se connecte au système.
- Mot de passe
-
Le mot de passe chiffré (ou un
x
si l’on utilise des mots de passe shadow). - ID utilisateur (UID)
-
Le numéro d’identification attribué à l’utilisateur dans le système.
- ID du groupe (GID)
-
L’identifiant du groupe primaire de l’utilisateur dans le système.
- GECOS
-
Un champ de commentaire facultatif, utilisé pour ajouter des informations supplémentaires sur l’utilisateur (comme son nom complet). Le champ peut contenir plusieurs entrées séparées par des virgules.
- Répertoire personnel
-
Le chemin absolu vers le répertoire personnel de l’utilisateur.
- Shell
-
Le chemin absolu vers le programme lancé automatiquement lorsque l’utilisateur se connecte au système (le plus souvent un shell interactif comme
/bin/bash
).
/etc/group
Ce fichier lisible par tous contient une liste de groupes, chacun sur une ligne distincte. Chaque ligne est constituée de quatre champs délimités par deux points :
- Nom du groupe
-
Le nom du groupe.
- Mot de passe du groupe
-
Le mot de passe chiffré du groupe (ou un
x
si l’on utilise des mots de passe shadow). - ID du groupe (GID)
-
Le numéro d’identification attribué au groupe dans le système.
- Liste des membres
-
Une liste délimitée par des virgules de tous les utilisateurs appartenant au groupe, à l’exception de ceux dont c’est le groupe principal.
/etc/shadow
Ce fichier ne peut être lu que par root et par les utilisateurs disposant des privilèges de root. Il contient les mots de passe chiffrés des utilisateurs, chacun sur une ligne distincte. Chaque ligne est constituée de neuf champs délimités par deux points :
- Nom d’utilisateur
-
Le nom utilisé lorsque l’utilisateur se connecte au système.
- Mot de passe chiffré
-
Le mot de passe chiffré de l’utilisateur (si la valeur commence par
!
, le compte est verrouillé). - Date du dernier changement de mot de passe
-
La date du dernier changement de mot de passe, en nombre de jours depuis le 1er janvier 1970 (une valeur de 0 signifie que l’utilisateur devra changer son mot de passe lors de la prochaine connexion).
- Âge minimum du mot de passe
-
Le nombre minimum de jours qui devront s’écouler après un changement de mot de passe avant que l’utilisateur ne soit autorisé à modifier à nouveau son mot de passe.
- Âge maximum du mot de passe
-
Le nombre maximal de jours qui peuvent s’écouler avant qu’un changement de mot de passe ne soit nécessaire.
- Délai d’avertissement du mot de passe
-
Le nombre de jours avant l’expiration du mot de passe pendant lesquels l’utilisateur est averti que celui-ci devra être modifié.
- Période d’inactivité du mot de passe
-
Le nombre de jours après l’expiration du mot de passe pendant lesquels l’utilisateur devra mettre à jour son mot de passe. Au terme de cette période, le compte sera désactivé si l’utilisateur ne modifie pas son mot de passe.
- Date d’expiration du compte
-
La date, exprimée en nombre de jours depuis le 1er janvier 1970, à laquelle le compte utilisateur sera désactivé (un champ vide signifie que le compte utilisateur n’expirera jamais).
- Un champ réservé
-
Ce champ est réservé pour une utilisation future.
/etc/gshadow
Ce fichier ne peut être lu que par root et par les utilisateurs disposant des privilèges de root. Il contient les mots de passe chiffrés des groupes, chacun sur une ligne distincte. Chaque ligne est constituée de quatre champs délimités par deux points.
- Nom du groupe
-
Le nom du groupe.
- Mot de passe chiffré
-
Le mot de passe chiffré du groupe (utilisé lorsqu’un utilisateur qui n’est pas membre du groupe souhaite rejoindre le groupe en utilisant la commande
newgrp
— si le mot de passe commence par!
, personne n’est autorisé à accéder au groupe avecnewgrp
). - Administrateurs du groupe
-
La liste des administrateurs du groupe, délimitée par des virgules (ils peuvent changer le mot de passe du groupe et ajouter ou supprimer des membres du groupe avec la commande
gpasswd
). - Membres du groupe
-
La liste des membres du groupe, délimitée par des virgules.
Filtrer les bases de données de mots de passe et des groupes
Il peut être nécessaire assez fréquemment d’examiner les informations sur les utilisateurs et les groupes stockées dans ces quatre fichiers pour rechercher des enregistrements spécifiques. Pour effectuer cette tâche, vous pouvez utiliser la commande grep
ou concaténer cat
et grep
.
# grep emma /etc/passwd emma:x:1020:1020:User Emma:/home/emma:/bin/bash # cat /etc/group | grep db-admin db-admin:x:1050:grace,frank
La commande getent
constitue un autre moyen pour consulter ces bases de données. En général, cette commande affiche les entrées des bases de données supportées par les bibliothèques Name Service Switch (NSS) et requiert le nom de la base et une clé de recherche. En l’absence d’argument clé, toutes les entrées de la base de données spécifiée sont affichées (à moins que la base de données ne supporte pas l’énumération). Dans le cas contraire, si une ou plusieurs clés sont fournies, la base de données sera filtrée en conséquence.
# getent passwd emma emma:x:1020:1020:User Emma:/home/emma:/bin/bash # getent group db-admin db-admin:x:1050:grace,frank
La commande getent
ne requiert pas les privilèges de root ; vous devez juste être capable de lire la base de données à partir de laquelle vous souhaitez récupérer des enregistrements.
Note
|
Rappelez-vous que |
Exercices guidés
-
Examinez l’affichage suivant et répondez aux questions ci-dessous :
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Quel est l’ID utilisateur (UID) et l’ID de groupe (GID) de
root
et decatherine
? -
Quel est le nom du groupe primaire de
kevin
? Y a-t-il d’autres membres dans ce groupe ? -
Quel shell est défini pour
mail
? Qu’est-ce que cela signifie ? -
Qui fait partie du groupe
app-developer
? Quels sont les administrateurs du groupe et quels sont les membres ordinaires ? -
Quelle est la durée de vie minimale du mot de passe pour
catherine
? Et quelle est la durée de vie maximale du mot de passe ? -
Quelle est la période d’inactivité du mot de passe pour
kevin
?
-
-
Par convention, quels sont les ID attribués aux comptes système et quels sont ceux attribués aux utilisateurs classiques ?
-
Comment savoir si un compte utilisateur qui était auparavant en mesure d’accéder au système se retrouve verrouillé ? Partons du principe que votre système utilise des mots de passe shadow.
Exercices d’approfondissement
-
Créez un compte utilisateur nommé
christian
à l’aide de la commandeuseradd -m
et identifiez son ID utilisateur (UID), son ID de groupe (GID) et son shell. -
Identifiez le nom du groupe primaire de
christian
. Que pouvez-vous en déduire ? -
En utilisant la commande
getent
, vérifiez les informations de conservation du mot de passe pour le compte utilisateurchristian
. -
Ajoutez le groupe
editor
aux groupes secondaires dechristian
. Supposons que ce groupe contienne déjàemma
,dave
etfrank
comme membres ordinaires. Comment pouvez-vous vérifier qu’il n’y a pas d’administrateurs pour ce groupe ? -
Lancez la commande
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
et décrivez le résultat en termes de permissions de fichiers. Parmi ces quatre fichiers, lesquels sont protégés pour des raisons de sécurité ? Partez du principe que votre système utilise des mots de passe shadow.
Résumé
Voici ce que nous avons appris dans cette leçon :
-
L’emplacement des fichiers qui enregistrent les informations sur les utilisateurs et les groupes.
-
Gérer les informations relatives aux utilisateurs et aux groupes enregistrées dans les bases de données des mots de passe et des groupes.
-
Récupérer des informations dans les bases de données des mots de passe et des groupes.
Voici les commandes et les fichiers que nous avons abordés dans cette leçon :
/etc/passwd
-
Le fichier qui contient les informations de base sur les utilisateurs.
/etc/group
-
Le fichier qui contient les informations de base sur les groupes.
/etc/shadow
-
Le fichier qui contient les mots de passe chiffrés des utilisateurs.
/etc/gshadow
-
Le fichier qui contient les mots de passe chiffrés des groupes.
getent
-
Filtrer les bases de données des mots de passe et des groupes.
Réponses aux exercices guidés
-
Examinez l’affichage suivant et répondez aux questions ci-dessous :
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Quel est l’ID utilisateur (UID) et l’ID de groupe (GID) de
root
et decatherine
?L’UID et le GID de
root
sont 0 et 0, tandis que l’UID et le GID decatherine
sont 1030 et 1025. -
Quel est le nom du groupe primaire de
kevin
? Y a-t-il d’autres membres dans ce groupe ?Le nom du groupe est
db-admin
.emma
etgrace
font également partie de ce groupe. -
Quel shell est défini pour
mail
? Qu’est-ce que cela signifie ?mail
est un compte système et son shell est/sbin/nologin
. En fait, les comptes système tels quemail
,ftp
,news
etdaemon
sont utilisés pour effectuer des tâches administratives et par conséquent, une connexion normale devrait être impossible pour ces comptes. C’est pourquoi le shell est habituellement paramétré à/sbin/nologin
ou/bin/false
. -
Qui fait partie du groupe
app-developer
? Quels sont les administrateurs du groupe et quels sont les membres ordinaires ?Les membres sont
catherine
,dave
etchristian
et ils sont tous des membres ordinaires. -
Quelle est la durée de vie minimale du mot de passe pour
catherine
? Et quelle est la durée de vie maximale du mot de passe ?La durée de vie minimale du mot de passe est de 20 jours, tandis que la durée de vie maximale est de 90 jours.
-
Quelle est la période d’inactivité du mot de passe pour
kevin
?La période d’inactivité du mot de passe est de deux jours. Pendant cette période,
kevin
devra mettre à jour le mot de passe, faute de quoi le compte sera désactivé.
-
-
Par convention, quels sont les ID attribués aux comptes système et quels sont ceux attribués aux utilisateurs classiques ?
Les comptes système ont généralement des UID inférieurs à 100 ou compris entre 500 et 1000, tandis que les utilisateurs normaux ont des UID à partir de 1000, même si certains systèmes historiques commencent la numérotation à 500. L’utilisateur
root
a un UID de 0. Rappelez-vous que les valeursUID_MIN
etUID_MAX
dans/etc/login.defs
définissent la plage d’UIDs utilisée pour la création d’utilisateurs ordinaires. Du point de vue de LPI Linux Essentials et LPIC-1, les comptes système ont des UIDs inférieurs à 1000 et les utilisateurs ordinaires ont des UIDs supérieurs à 1000. -
Comment savoir si un compte utilisateur qui était auparavant en mesure d’accéder au système se retrouve verrouillé ? Partons du principe que votre système utilise des mots de passe shadow.
Lorsque les mots de passe shadow sont utilisés, le second champ de
/etc/passwd
contient le caractèrex
pour chaque compte utilisateur, puisque les mots de passe utilisateur chiffrés sont stockés dans/etc/shadow
. Plus précisément, le mot de passe chiffré d’un compte utilisateur est enregistré dans le deuxième champ de ce fichier et il est verrouillé s’il commence par un point d’exclamation.
Réponses aux exercices d’approfondissement
-
Créez un compte utilisateur nommé
christian
à l’aide de la commandeuseradd -m
et identifiez son ID utilisateur (UID), son ID de groupe (GID) et son shell.# useradd -m christian # cat /etc/passwd | grep christian christian:x:1050:1060::/home/christian:/bin/bash
L’UID et le GID de
christian
sont respectivement 1050 et 1060 (le troisième et le quatrième champ de/etc/passwd
)./bin/bash
est le shell défini pour ce compte utilisateur (le septième champ de/etc/passwd
). -
Identifiez le nom du groupe primaire de
christian
. Que pouvez-vous en déduire ?# cat /etc/group | grep 1060 christian:x:1060:
Le nom du groupe primaire de
christian
estchristian
(le premier champ dans/etc/group
). Par conséquent,USERGROUPS_ENAB
dans/etc/login.defs
est défini àyes
pour queuseradd
crée par défaut un groupe avec le même nom que le compte utilisateur. -
En utilisant la commande
getent
, vérifiez les informations de conservation du mot de passe pour le compte utilisateurchristian
.# getent shadow christian christian:!:18015:0:99999:7:::
Le compte utilisateur
christian
n’a pas de mot de passe défini et il est maintenant verrouillé (le second champ de/etc/shadow
contient un point d’exclamation). Il n’y a pas d’âge minimum ou maximum pour le mot de passe de ce compte utilisateur (le quatrième et le cinquième champ de/etc/shadow
sont définis à 0 et 99999 jours), alors que la période d’avertissement du mot de passe est fixée à 7 jours (le sixième champ de/etc/shadow
). Enfin, il n’y a pas de période d’inactivité (septième champ de/etc/shadow
) et le compte n’expire jamais (huitième champ de/etc/shadow
). -
Ajoutez le groupe
editor
aux groupes secondaires dechristian
. Supposons que ce groupe contienne déjàemma
,dave
etfrank
comme membres ordinaires. Comment pouvez-vous vérifier qu’il n’y a pas d’administrateurs pour ce groupe ?# cat /etc/group | grep editor editor:x:1100:emma,dave,frank # usermod -a -G editor christian # cat /etc/group | grep editor editor:x:1100:emma,dave,frank,christian # cat /etc/gshadow | grep editor editor:!::emma,dave,frank,christian
Le troisième et le quatrième champ de
/etc/ghadow
contiennent les administrateurs et les membres ordinaires du groupe spécifié. Ainsi, puisque le troisième champ est vide poureditor
, il n’y a pas d’administrateurs pour ce groupe (emma
,dave
,frank
etchristian
sont tous des membres ordinaires). -
Lancez la commande
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
et décrivez le résultat en termes de permissions de fichiers. Parmi ces quatre fichiers, lesquels sont protégés pour des raisons de sécurité ? Partez du principe que votre système utilise des mots de passe shadow.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Les fichiers
/etc/passwd
et/etc/group
sont lisibles par tous et font l’objet d’un shadow pour des raisons de sécurité. Lorsque les mots de passe shadow sont utilisés, vous pouvez voir unx
dans le second champ de ces fichiers, étant donné que les mots de passe chiffrés pour les utilisateurs et les groupes sont enregistrés dans/etc/shadow
et/etc/gshadow
, qui ne sont lisibles que par root et, dans mon système, par les membres du groupeshadow
.