107.1 Leçon 1
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 : |
1 sur 2 |
Introduction
La gestion des utilisateurs et des groupes est une partie très importante du travail de tout administrateur système. Les distributions Linux modernes mettent en œuvre des interfaces graphiques qui vous permettent de gérer rapidement et facilement toutes les activités liées à cet aspect fondamental. Ces interfaces peuvent varier en termes de présentation graphique, mais les fonctionnalités restent les mêmes. Ces outils vous permettent de visualiser, de modifier, d’ajouter et de supprimer des utilisateurs et des groupes locaux. Cependant, pour une gestion plus avancée, vous devez utiliser la ligne de commande.
Ajouter des comptes utilisateurs
Sous Linux, vous pouvez ajouter un nouveau compte utilisateur avec la commande useradd
. Par exemple, en tant que root, vous pouvez créer un nouveau compte utilisateur nommé michael
avec une configuration par défaut, en utilisant la commande suivante :
# useradd michael
Lorsque vous utilisez la commande useradd
, les informations sur les utilisateurs et les groupes stockées dans les bases de données de mots de passe et de groupes sont mises à jour pour le compte utilisateur nouvellement créé et, si cela est spécifié, le répertoire personnel du nouvel utilisateur est également créé. Un groupe portant le même nom que le nouveau compte utilisateur est également créé.
Une fois que vous avez créé le nouvel utilisateur, vous pouvez définir son mot de passe en utilisant la commande passwd
. Vous pouvez consulter son identifiant utilisateur (UID), son identifiant de groupe (GID) et les groupes auxquels il appartient avec les commandes id
et groups
.
# passwd michael Changing password for user michael. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. # id michael uid=1000(michael) gid=100(michael) groups=100(michael) # groups michael michael : michael
Note
|
Gardez à l’esprit que n’importe quel utilisateur peut consulter son UID, son GID et les groupes auxquels il appartient en utilisant simplement les commandes |
Voici les options les plus importantes qui s’appliquent à la commande useradd
:
-c
-
Créer un nouveau compte utilisateur avec un commentaire personnalisé (par exemple le nom complet de l’utilisateur).
-d
-
Créez un nouveau compte utilisateur avec un répertoire personnel spécifique.
-e
-
Créer un nouveau compte utilisateur en précisant la date à laquelle il sera désactivé.
-f
-
Créer un nouveau compte utilisateur en définissant le nombre de jours après l’expiration du mot de passe pendant lesquels l’utilisateur devra mettre à jour son mot de passe (faute de quoi le compte sera désactivé).
-g
-
Créer un nouveau compte utilisateur avec un GID spécifique.
-G
-
Créer un nouveau compte utilisateur en l’ajoutant à plusieurs groupes secondaires.
-k
-
Créer un nouveau compte utilisateur en copiant les fichiers squelette depuis un répertoire donné (cette option n’est valide que si l’option
-m
ou--create-home
est spécifiée). -m
-
Créer un nouveau compte utilisateur avec son répertoire personnel (s’il n’existe pas).
-M
-
Créer un nouveau compte utilisateur sans le répertoire personnel.
-s
-
Créer un nouveau compte utilisateur avec un shell de connexion spécifique.
-u
-
Créer un nouveau compte utilisateur avec un UID spécifique.
Consultez la page de manuel de la commande useradd
pour la liste complète des options.
Modifier les comptes utilisateurs
Parfois, il vous faut changer un paramètre d’un compte utilisateur existant, comme le nom d’utilisateur (login name), le shell de connexion, la date d’expiration du mot de passe et ainsi de suite. Dans ce cas, vous pouvez utiliser la commande usermod
.
# usermod -s /bin/tcsh michael # usermod -c "Michael User Account" michael
Tout comme la commande useradd
, la commande usermod
requiert les privilèges de root.
Dans les exemples ci-dessus, le shell de connexion de michael
est modifié dans un premier temps, puis une description succincte est ajoutée à ce compte d’utilisateur. Notez que vous pouvez modifier plusieurs paramètres à la fois, en les spécifiant dans une seule commande.
Voici les options les plus importantes qui s’appliquent à la commande usermod
:
-c
-
Ajouter un commentaire succinct au compte d’utilisateur spécifié.
-d
-
Modifier le répertoire personnel du compte utilisateur spécifié. Si cette option est utilisée avec l’option
-m
, le contenu du répertoire personnel en cours sera déplacé vers le nouveau répertoire personnel, qui sera créé s’il n’existe pas déjà. -e
-
Définir la date d’expiration du compte utilisateur spécifié.
-f
-
Définir le nombre de jours après l’expiration du mot de passe pendant lesquels l’utilisateur devra mettre à jour son mot de passe (faute de quoi le compte sera désactivé).
-g
-
Modifier le groupe primaire du compte utilisateur spécifié (le groupe doit exister).
-G
-
Ajouter des groupes secondaires au compte utilisateur spécifié. Chaque groupe doit exister et doit être séparé du suivant par une virgule, sans espace blanc intermédiaire. Si elle est utilisée seule, cette option supprime tous les groupes existants auxquels l’utilisateur appartient, tandis que si elle est utilisée avec l’option
-a
, elle ajoute simplement les nouveaux groupes secondaires aux groupes existants. -l
-
Modifier nom d’utilisateur (login) du compte spécifié.
-L
-
Verrouiller le compte utilisateur spécifié. Cette opération ajoute un point d’exclamation devant le mot de passe chiffré dans le fichier
/etc/shadow
, ce qui désactive l’accès avec un mot de passe pour cet utilisateur. -s
-
Modifier le shell de connexion du compte utilisateur spécifié.
-u
-
Modifier l’UID du compte utilisateur spécifié.
-U
-
Déverrouiller le compte utilisateur spécifié. Cette opération supprime le point d’exclamation devant le mot de passe chiffré dans le fichier
/etc/shadow
.
Consultez la page de manuel de la commande usermod
pour la liste complète des options.
Tip
|
N’oubliez pas que lorsque vous modifiez le login d’un compte utilisateur, vous devrez probablement renommer le répertoire personnel de cet utilisateur et d’autres éléments connexes comme les fichiers spool de courrier. De même, si vous modifiez l’UID d’un compte utilisateur, vous devrez probablement corriger les droits d’accès des fichiers et des répertoires situés en dehors du répertoire personnel de l’utilisateur (l’UID est modifié automatiquement pour la boîte aux lettres de l’utilisateur et pour tous les fichiers qui lui appartiennent et qui se trouvent dans son répertoire personnel). |
Supprimer des comptes utilisateurs
Si vous souhaitez supprimer un compte utilisateur, vous pouvez utiliser la commande userdel
. Plus précisément, cette commande met à jour les informations stockées dans les bases de données des comptes en supprimant toutes les entrées relatives à l’utilisateur spécifié. L’option -r
supprimera également le répertoire personnel de l’utilisateur et tout son contenu ainsi que le spool de courrier de l’utilisateur. Les autres fichiers situés ailleurs devront être recherchés et supprimés manuellement.
# userdel -r michael
Tout comme pour useradd
et usermod
, vous avez besoin des droits de root pour supprimer des comptes utilisateurs.
Ajouter, modifier et supprimer des groupes
Tout comme pour la gestion des utilisateurs, vous pouvez ajouter, modifier et supprimer des groupes en utilisant les commandes groupadd
, groupmod
et groupdel
avec les privilèges de root. Si vous souhaitez créer un nouveau groupe nommé developer
, vous pouvez exécuter la commande suivante :
# groupadd -g 1090 developer
L’option -g
de cette commande crée un groupe avec un GID spécifique.
Warning
|
Rappelez-vous que lorsque vous ajoutez un nouveau compte utilisateur, le groupe primaire et les groupes secondaires auxquels il appartient doivent exister avant de lancer la commande |
Par la suite, si vous voulez renommer le groupe developer
en web-developer
en modifiant son GID, vous pouvez exécuter la commande suivante :
# groupmod -n web-developer -g 1050 developer
Tip
|
Rappelez-vous que si vous changez le GID en utilisant l’option |
Enfin, si vous voulez supprimer le groupe web-developer
, vous pouvez invoquer cette commande :
# groupdel web-developer
Vous ne pouvez pas supprimer un groupe s’il s’agit du groupe primaire d’un compte utilisateur. Vous devrez donc supprimer l’utilisateur avant de supprimer le groupe. Tout comme pour les utilisateurs, si vous supprimez un groupe, les fichiers appartenant à ce groupe restent dans votre système de fichiers et ne sont pas supprimés ou attribués à un autre groupe.
Le répertoire squelette
Lorsque vous ajoutez un nouveau compte utilisateur, même en créant son répertoire personnel, ce dernier est peuplé de fichiers et de dossiers copiés depuis le répertoire squelette (par défaut /etc/skel
). L’idée derrière ceci est simple : un administrateur système veut ajouter de nouveaux utilisateurs avec les mêmes fichiers et répertoires dans leur répertoire personnel. Par conséquent, si vous voulez personnaliser les fichiers et les dossiers qui sont créés automatiquement dans le répertoire personnel des nouveaux comptes utilisateurs, vous devrez ajouter ces nouveaux fichiers et dossiers au répertoire squelette.
Tip
|
Notez que si vous voulez afficher la liste de tous les fichiers et répertoires du répertoire squelette, vous devrez utiliser la commande |
Le fichier /etc/login.defs
Sous Linux, le fichier /etc/login.defs
définit les paramètres de configuration qui régissent la création des utilisateurs et des groupes. Par ailleurs, les commandes présentées dans les sections précédentes puisent leurs valeurs par défaut dans ce fichier.
Voici les principales directives :
UID_MIN
etUID_MAX
-
La plage des identifiants utilisateurs qui peuvent être attribués aux nouveaux utilisateurs ordinaires.
GID_MIN
etGID_MAX
-
La plage des identifiants de groupe qui peuvent être attribués aux nouveaux groupes ordinaires.
CREATE_HOME
-
Indique si un répertoire personnel doit être créé par défaut pour les nouveaux utilisateurs.
USERGROUPS_ENAB
-
Indique si le système doit créer par défaut un nouveau groupe pour chaque nouveau compte utilisateur avec le même nom que l’utilisateur, et si la suppression du compte utilisateur a pour effet de supprimer également le groupe primaire de l’utilisateur s’il ne compte plus de membres.
MAIL_DIR
-
Le répertoire de stockage du courrier.
PASS_MAX_DAYS
-
Le nombre maximum de jours pendant lesquels un mot de passe pourra être utilisé.
PASS_MIN_DAYS
-
Le nombre minimum de jours autorisés entre deux changements de mot de passe.
PASS_MIN_LEN
-
La longueur minimale acceptable du mot de passe.
PASS_WARN_AGE
-
Le nombre de jours de préavis avant l’expiration d’un mot de passe.
Tip
|
Lorsque vous gérez des utilisateurs et des groupes, vérifiez toujours ce fichier pour voir et modifier au besoin le comportement par défaut du système. |
La commande passwd
Cette commande est utilisée essentiellement pour modifier le mot de passe d’un utilisateur. Comme nous l’avons déjà dit, chaque utilisateur peut modifier son propre mot de passe, mais seul root a le droit de modifier le mot de passe de n’importe quel utilisateur. Ceci est dû au fait que la commande passwd
a le bit SUID activé (un s
à la place du fanion exécutable pour le propriétaire), ce qui signifie qu’elle s’exécute avec les privilèges du propriétaire du fichier (en l’occurrence root).
# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
En fonction des options utilisées avec passwd
, vous pouvez contrôler des aspects spécifiques à l’expiration des mots de passe :
-d
-
Supprimer le mot de passe d’un compte utilisateur (en le désactivant ainsi).
-e
-
Obliger l’utilisateur à modifier son mot de passe.
-i
-
Définir le nombre de jours d’inactivité après l’expiration d’un mot de passe pendant lesquels l’utilisateur devra mettre à jour son mot de passe (faute de quoi le compte sera désactivé).
-l
-
Verrouiller le compte utilisateur (le mot de passe chiffré est préfixé d’un point d’exclamation dans le fichier
/etc/shadow
). -n
-
Définir la durée de vie minimale du mot de passe.
-S
-
Afficher les informations sur le statut du mot de passe d’un compte utilisateur donné.
-u
-
Déverrouiller le compte utilisateur (le point d’exclamation est supprimé du champ du mot de passe dans le fichier
/etc/shadow
). -x
-
Définir la durée de vie maximale du mot de passe.
-w
-
Définir le nombre de jours d’avertissement avant l’expiration du mot de passe pendant lesquels l’utilisateur sera averti que le mot de passe devra être modifié.
Note
|
Les groupes peuvent également avoir un mot de passe, qui est défini à l’aide de la commande |
La commande chage
Cette commande, qui signifie changer l’âge (change age), est utilisée pour modifier les informations d’expiration du mot de passe d’un utilisateur. La commande chage
est réservée à l’utilisateur root, à l’exception de l’option -l
qui peut être utilisée par les utilisateurs ordinaires pour obtenir la liste des informations d’expiration du mot de passe de leur propre compte.
Voici les autres options qui s’appliquent à la commande chage
:
-d
-
Définir le dernier changement de mot de passe pour un compte utilisateur.
-E
-
Définir la date d’expiration d’un compte utilisateur.
-I
-
Définir le nombre de jours d’inactivité après l’expiration d’un mot de passe pendant lesquels l’utilisateur devra mettre à jour son mot de passe (faute de quoi le compte sera désactivé).
-m
-
Définir la durée de vie minimale du mot de passe pour un compte utilisateur.
-M
-
Définir la durée de vie maximale du mot de passe pour un compte utilisateur.
-W
-
Définir le nombre de jours d’avertissement avant l’expiration du mot de passe pendant lesquels l’utilisateur sera averti que le mot de passe devra être modifié.
Exercices guidés
-
Pour chacune des commandes ci-dessous, indiquez l’objectif correspondant :
usermod -L
passwd -u
chage -E
groupdel
useradd -s
groupadd -g
userdel -r
usermod -l
groupmod -n
useradd -m
-
Pour chacune des commandes
passwd
ci-dessous, identifiez la commandechage
correspondante :passwd -n
passwd -x
passwd -w
passwd -i
passwd -S
-
Expliquez en détail la fonction des commandes de la question précédente :
-
Quelles commandes pouvez-vous utiliser pour verrouiller un compte utilisateur ? Et quelles commandes pour le déverrouiller ?
Exercices d’approfondissement
-
En utilisant la commande
groupadd
, créez les groupesadministrators
etdevelopers
. Admettons que vous travaillez en tant que root. -
Maintenant que vous avez créé ces groupes, exécutez la commande suivante :
useradd -G administrators,developers kevin
. Quelles sont les actions effectuées par cette commande ? Admettons queCREATE_HOME
etUSERGROUPS_ENAB
dans/etc/login.defs
sont mis suryes
. -
Créez un nouveau groupe nommé
designers
, renommez-le enweb-designers
et ajoutez ce nouveau groupe aux groupes secondaires du compte utilisateurkevin
. Identifiez tous les groupes auxquelskevin
appartient ainsi que leurs identifiants. -
Supprimez uniquement le groupe
developers
des groupes secondaires dekevin
. -
Définissez le mot de passe pour le compte utilisateur
kevin
. -
En utilisant la commande
chage
, vérifiez d’abord la date d’expiration du compte utilisateurkevin
et fixez-la au 31 décembre 2022. Quelle autre commande pouvez-vous utiliser pour modifier la date d’expiration d’un compte utilisateur ? -
Ajoutez un nouveau compte utilisateur nommé
emma
avec l’UID 1050 et définissezadministrators
comme groupe primaire etdevelopers
etweb-designers
comme groupes secondaires. -
Changez le shell de connexion de
emma
en/bin/sh
. -
Supprimez les comptes utilisateurs
emma
etkevin
ainsi que les groupesadministrators
,developers
etweb-designers
.
Résumé
Voici ce que nous avons vu dans cette leçon :
-
Les principes fondamentaux de la gestion des utilisateurs et des groupes sous Linux.
-
Comment ajouter, modifier et supprimer des comptes utilisateurs.
-
Comment ajouter, modifier et supprimer des groupes.
-
Gérer le répertoire squelette.
-
Éditer le fichier qui contrôle la création des utilisateurs et des groupes.
-
Modifier les mots de passe des comptes utilisateurs.
-
Modifier les informations relatives à l’expiration des mots de passe des comptes utilisateurs.
Voici les commandes et les fichiers qui ont été abordés dans cette leçon :
useradd
-
Créer un nouveau compte utilisateur.
usermod
-
Modifier un compte utilisateur.
userdel
-
Supprimer un compte utilisateur.
groupadd
-
Créer un nouveau groupe.
groupmod
-
Modifier un groupe.
groupdel
-
Supprimer un groupe.
passwd
-
Modifier les mots de passe des comptes utilisateurs et contrôler tous les aspects de l’expiration des mots de passe.
chage
-
Modifier les informations relatives à l’expiration du mot de passe de l’utilisateur.
/etc/skel
-
L’emplacement par défaut du répertoire squelette.
/etc/login.defs
-
Le fichier qui contrôle la création des utilisateurs et des groupes et qui fournit les valeurs par défaut pour plusieurs paramètres des comptes utilisateurs.
Réponses aux exercices guidés
-
Pour chacune des commandes ci-dessous, indiquez l’objectif correspondant :
usermod -L
Verrouiller le compte utilisateur
passwd -u
Déverrouiller le compte utilisateur
chage -E
Définir la date d’expiration du compte utilisateur
groupdel
Supprimer le groupe
useradd -s
Créer un nouveau compte utilisateur avec un shell de connexion spécifique
groupadd -g
Créer un nouveau groupe avec un GID spécifique
userdel -r
Supprimer le compte utilisateur et tous les fichiers de son répertoire personnel, le répertoire personnel lui-même et le spool de courrier de l’utilisateur
usermod -l
Modifier le nom d’utilisateur du compte
groupmod -n
Modifier le nom du groupe
useradd -m
Créer un nouveau compte utilisateur et son répertoire personnel
-
Pour chacune des commandes
passwd
ci-dessous, identifiez la commandechage
correspondante :passwd -n
chage -m
passwd -x
chage -M
passwd -w
chage -W
passwd -i
chage -I
passwd -S
chage -l
-
Expliquez en détail la fonction des commandes de la question précédente :
Sous Linux, vous pouvez utiliser la commande
passwd -n
(ouchage -m
) pour définir le nombre minimum de jours entre deux changements de mot de passe, la commandepasswd -x
(ouchage -M
) pour définir le nombre maximum de jours pendant lesquels un mot de passe est valide, la commandepasswd -w
(ouchage -W
) pour définir le nombre de jours d’avertissement avant que le mot de passe n’expire, la commandepasswd -i
(ouchage -I
) pour définir le nombre de jours d’inactivité pendant lesquels l’utilisateur doit changer son mot de passe et la commandepasswd -S
(ouchage -l
) pour afficher des informations succinctes sur le mot de passe du compte utilisateur. -
Quelles commandes pouvez-vous utiliser pour verrouiller un compte utilisateur ? Et quelles commandes pour le déverrouiller ?
Si vous voulez verrouiller un compte utilisateur, vous pouvez utiliser l’une de ces commandes :
usermod -L
,usermod --lock
etpasswd -l
. À l’inverse, si vous souhaitez le déverrouiller, vous pouvez utiliserusermod -U
,usermod --unlock
etpasswd -u
.
Réponses aux exercices d’approfondissement
-
En utilisant la commande
groupadd
, créez les groupesadministrators
etdevelopers
. Admettons que vous travaillez en tant que root.# groupadd administrators # groupadd developers
-
Maintenant que vous avez créé ces groupes, exécutez la commande suivante :
useradd -G administrators,developers kevin
. Quelles sont les actions effectuées par cette commande ? Admettons queCREATE_HOME
etUSERGROUPS_ENAB
dans/etc/login.defs
sont mis suryes
.La commande ajoute un nouvel utilisateur nommé
kevin
à la liste des utilisateurs du système, crée son répertoire personnel (CREATE_HOME
est réglé suryes
et vous pouvez donc omettre l’option-m
) ainsi qu’un nouveau groupe nommékevin
comme groupe primaire de ce compte utilisateur (USERGROUPS_ENAB
est réglé suryes
). Enfin, les fichiers et dossiers contenus dans le répertoire squelette sont copiés vers le répertoire personnel dekevin
. -
Créez un nouveau groupe nommé
designers
, renommez-le enweb-designers
et ajoutez ce nouveau groupe aux groupes secondaires du compte utilisateurkevin
. Identifiez tous les groupes auxquelskevin
appartient ainsi que leurs identifiants.# groupadd designers # groupmod -n web-designers designers # usermod -a -G web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1029(developers),1031(web-designers)
-
Supprimez uniquement le groupe
developers
des groupes secondaires dekevin
.# usermod -G administrators,web-designers kevin # id kevin uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1031(web-designers)
La commande
usermod
n’a pas d’option pour supprimer un seul groupe ; par conséquent, vous devez spécifier tous les groupes secondaires auxquels l’utilisateur appartient. -
Définissez le mot de passe pour le compte utilisateur
kevin
.# passwd kevin Changing password for user kevin. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
En utilisant la commande
chage
, vérifiez d’abord la date d’expiration du compte utilisateurkevin
et fixez-la au 31 décembre 2022. Quelle autre commande pouvez-vous utiliser pour modifier la date d’expiration d’un compte utilisateur ?# chage -l kevin | grep "Account expires" Account expires : never # chage -E 2022-12-31 kevin # chage -l kevin | grep "Account expires" Account expires : dec 31, 2022
La commande
usermod
avec l’option-e
équivaut àchage -E
. -
Ajoutez un nouveau compte utilisateur nommé
emma
avec l’UID 1050 et définissezadministrators
comme groupe primaire etdevelopers
etweb-designers
comme groupes secondaires.# useradd -u 1050 -g administrators -G developers,web-designers emma # id emma uid=1050(emma) gid=1028(administrators) groups=1028(administrators),1029(developers),1031(web-designers)
-
Changez le shell de connexion de
emma
en/bin/sh
.# usermod -s /bin/sh emma
-
Supprimez les comptes utilisateurs
emma
etkevin
ainsi que les groupesadministrators
,developers
etweb-designers
.# userdel -r emma # userdel -r kevin # groupdel administrators # groupdel developers # groupdel web-designers