Comment créer, modifier et supprimer un compte utilisateur sous Linux
La gestion des comptes utilisateurs est l’une des tâches fondamentales de tout administrateur système Linux. Dans cet article, nous allons apprendre comment créer un nouveau compte utilisateur, comment le modifier et comment le supprimer de la ligne de commande à l’aide des utilitaires useradd, usermod et userdel, qui font partie du système de base.
Dans ce tutoriel, vous allez apprendre :
- Quelle est l’utilisation du fichier /etc/login.defs ?
- Comment créer un compte utilisateur avec différentes options à l’aide de la commande useradd
- Comment modifier un compte utilisateur à l’aide de la commande usermod
- Comment supprimer un compte utilisateur à l’aide de la commande userdel
Comment créer, modifier et supprimer un compte utilisateur sous Linux
Configuration logicielle requise et conventions utilisées
Paramètres par défaut
Les paramètres par défaut appliqués lors de la création d’un utilisateur sont définis dans le fichier /etc/login.defs. Si nous jetons un coup d’œil au fichier sur un système Fedora, par exemple, nous pouvons voir les options définies dans celui-ci, qui peuvent être remplacées au moment de l’exécution par les options de ligne de commande dédiées. Voyons quelques-unes de ces définitions :
| OPTION | SIGNIFICATION | VALEUR PAR DÉFAUT |
|---|---|---|
| CRÉER_ACCUEIL | Définit si un répertoire personnel doit être créé pour les nouveaux utilisateurs | oui |
| MÉTHODE_DE_SAISIE | La méthode de chiffrement utilisée pour chiffrer les mots de passe | SHA512 |
| UID_MIN | Valeur uid minimale attribuée automatiquement aux utilisateurs standard | 1000 |
| UID_MAX | Valeur uid maximale attribuée automatiquement aux utilisateurs standard | 60000 |
| SYS_UID_MIN | Valeur uid minimale attribuée automatiquement aux utilisateurs « système » | 201 |
| SYS_UID_MAX | Valeur uid maximale attribuée automatiquement aux utilisateurs « système » | 999 |
| PASS_MAX_JOURS | Nombre maximal de jours d’utilisation d’un mot de passe | 99999 |
| JOUR_MIN_PASS | Nombre minimum de jours autorisés entre les changements de mot de passe | |
| AVERTIR_L'AGE_DE_PASS | Nombre de jours d’avertissement avant l’expiration d’un mot de passe | 7 |
Celles ci-dessus ne sont qu’un petit sous-ensemble des options définies dans le fichier /etc/login.defs, mais suffisantes pour donner une idée générale.
Création d’un nouvel utilisateur
Pour créer un nouveau compte utilisateur sur notre système Linux, nous pouvons utiliser l’utilitaire useradd ; Sa syntaxe est la suivante :
useradd [options] LOGIN
Où LOGIN est le nom de connexion à créer. Supposons que nous voulions créer un nouveau compte pour l’utilisateur « newuser » ; Nous courrions :
sudo useradd newuser
La commande ci-dessus créera le compte « newuser » sur le système ; De plus, un répertoire personnel sera créé pour l’utilisateur, car, comme nous pouvons le voir dans le tableau ci-dessus, l’option CREATE_HOME est définie sur Oui par défaut. Il est possible de demander la création d’un répertoire personnel pour le nouvel utilisateur explicitement en utilisant l’option -m (abréviation de --create-home) de la commande useradd. Si nous voulons éviter la création dudit répertoire, nous devons utiliser l’option -M, qui est l’abréviation de --no-create-home.
Après la création d’un utilisateur, la manière recommandée de définir son mot de passe est d’utiliser l’utilitaire passwd, rappelez-vous cela, c’est une étape importante !
Spécification d’un shell de connexion
Une autre chose courante que nous pouvons vouloir spécifier lors de la création d’un nouvel utilisateur, est son shell de connexion : nous pouvons le faire en utilisant l’option -s (--shell) et en passant le chemin du binaire du shell comme argument. Si cette option n’est pas fournie explicitement, le shell spécifié par la variable $SHELL sera utilisé (sur Fedora, c’est /bin/bash). Par exemple, pour déclarer explicitement le shell de connexion d’un nouvel utilisateur, nous exécuterions :
sudo useradd -s /bin/bash newuser
Spécifier manuellement l’UID de l’utilisateur
Lorsqu’un nouvel utilisateur est créé, par défaut, le premier uid disponible supérieur ou égal à celui spécifié par l’option UID_MIN dans le fichier /etc/login.defs, supérieur à celui de tout autre utilisateur et inférieur ou égal à celui spécifié avec l’option UID_MAX, lui est attribué. Si nous voulons spécifier manuellement un uid, nous devons utiliser l’option -u (--uid) et fournir la valeur uid que nous voulons utiliser comme argument (il doit s’agir d’une valeur non négative). Pour créer un utilisateur avec un uid de 1005 attribué manuellement, nous exécuterions :
sudo useradd -u 1005 newuser
Création d’un utilisateur « système »
Si elle n’est pas explicitement déclarée, la commande useradd créera des utilisateurs « standard », donc des utilisateurs avec un uid >= 1000. Si nous voulons créer un utilisateur « système », à la place, donc un utilisateur sans informations de vieillissement déclarées dans le fichier /etc/shadow, nous devons utiliser l’option -r (--system). Les utilisateurs du système sont normalement utilisés par des démons ou d’autres applications, c’est pourquoi les répertoires personnels ne sont pas créés pour eux. Leur uid est choisi dans la plage définie par les options SYS_UID_MIN et SYS_UID_MAX dans le fichier /etc/login.defs. Pour créer un utilisateur « système », nous exécuterions :
sudo useradd -r newuser
Spécifier des groupes supplémentaires pour un nouvel utilisateur
Lorsqu’un utilisateur standard est créé, par défaut, un groupe portant son nom, sera créé et il y sera automatiquement inclus : il s’agit de son groupe principal. Si nous voulons spécifier une série de groupes supplémentaires dont l’utilisateur doit faire partie, nous devons utiliser l’option -G, qui est l’abréviation de --groups, et fournir une liste de groupes séparés par des virgules comme argument. Par exemple, pour inclure un utilisateur dans le groupe wheel, ce qui est nécessaire pour lui permettre d’utiliser la commande sudo, nous exécuterions :
sudo useradd -G wheel newuser
Modifier le compte utilisateur avec l’utilitaire usermod
Si l’utilitaire useradd est utilisé pour créer un nouveau compte utilisateur, celui de usermod, comme son nom l’indique, est utilisé pour modifier un compte existant. La syntaxe à utiliser avec la commande est la même que celle utilisée par useradd :
usermod [options] LOGIN
Voyons quelques exemples d’utilisation de l’utilitaire.
Ajouter un utilisateur existant à des groupes supplémentaires
Nous avons vu comment ajouter l’utilisateur à des groupes supplémentaires au moment de la création, en utilisant l’option -G de la commande useradd. Cependant, si un compte utilisateur existe déjà et que nous voulons le rendre membre de groupes supplémentaires, nous devrions utiliser la même option avec celle -a (--append) lors de l’exécution de l’utilitaire usermod et fournir la liste des groupes comme argument :
sudo usermod -G -a newgroup user
L’option -a doit être utilisée exclusivement avec -G. Attention, cependant, si ce dernier est utilisé seul, les groupes spécifiés ne seront pas ajoutés à la liste des groupes supplémentaires dont l’utilisateur fait déjà partie, mais ladite liste sera
complètement redéfinie.
Verrouillage et déverrouillage d’un mot de passe utilisateur
Parfois, nous pouvons vouloir verrouiller le mot de passe d’un utilisateur, afin de le rendre impossible à se connecter en l’utilisant. Dans de tels cas, nous pouvons utiliser l’option -L (abréviation de --lock) :
sudo usermod -L newuser
Le symbole ! sera placé devant le mot de passe crypté, le désactivant :
newuser:!$6$ISaqNDTydf51adbj$6ciHWBByfhe9k0sfg8Cky2F3HhgxdfMtmrWyq0323rvuCUu/un0d4rldwI0ELj4aSyFv0.cki3c/oLJFFNGyt/:18602:0:99999:7:::
Pour effectuer l’opération inverse, et déverrouiller le mot de passe de l’utilisateur, nous devons utiliser l’option -U (--unlock) :
sudo usermod -U newuser
Changer l’uid de l’utilisateur et le gid de son groupe initial
Pour changer un uid utilisateur existant, nous devons utiliser l’option -u de usermod et fournir la nouvelle valeur à utiliser. L’uid spécifié, bien sûr, ne doit pas être déjà utilisé, sinon nous recevrons une erreur :
sudo usermod -u 1000 newuser
usermod: UID '1000' already exists
Lorsque l’uid d’un utilisateur existant est modifié, tous les fichiers contenus dans le répertoire personnel de cet utilisateur verront leur ID utilisateur modifié en conséquence, sauf si l’UID du répertoire personnel est différent de l’UID actuellement attribué à l’utilisateur.
Nous pouvons également vouloir changer le gid (identifiant du groupe) du groupe initial de l’utilisateur (celui qui est créé avec l’utilisateur : son gid est le même que l’uid de l’utilisateur). Pour effectuer une telle opération, nous devons exécuter usermod avec l’option -g ou --gid ; Le nouveau groupe doit déjà exister :
sudo usermod -g 1006 newuser
Une fois que nous changeons un groupe d’utilisateurs primaires, les fichiers de son répertoire personnel, appartenant à son groupe précédent, seront automatiquement définis pour appartenir au nouveau.
Modification du nom de connexion d’un utilisateur
Pour changer le nom de connexion d’un utilisateur, nous devons utiliser l’option -l (--login) de l’utilitaire usermod, fournir le nouveau nom de connexion comme premier argument, et le nom de connexion actuel comme second. Supposons que nous voulions changer le nom de connexion de
« newuser » à « linuxconfig « , nous exécuterions :
sudo usermod -l linuxconfig newuser
Attention, en exécutant la commande ci-dessus, seul le nom de connexion de l’utilisateur sera modifié et rien d’autre. Le répertoire personnel de l’utilisateur ne sera pas renommé. Consultez la section suivante si vous souhaitez également apporter ces modifications supplémentaires.
Modifier le répertoire de base d’un utilisateur et déplacer tous les fichiers utilisateur
Parfois, nous pouvons avoir besoin de modifier le répertoire personnel d’un utilisateur. Pour accomplir cette tâche, nous devons exécuter l’utilitaire usermod avec l’option -d, abréviation de --home et spécifier le chemin du nouveau répertoire. Si nous voulons également déplacer tous les fichiers existants dans le répertoire personnel actuel, nous devons également fournir l’option -m, qui est l’abréviation de --move-home. Le nouveau répertoire personnel n’est créé que si le répertoire actuel existe réellement ; la propriété des fichiers, les modes, l’ACL et les attributs étendus seront adaptés à la nouvelle configuration, mais des modifications manuelles supplémentaires pourraient être nécessaires. Pour changer le répertoire de l’utilisateur newuser, qui est en fait /home/newuser, en /home/newuser_new, et déplacer tous les fichiers,
nous allons donc exécuter :
sudo usermod -d /home/newuser_new -m newuser
Suppression d’un utilisateur à l’aide de l’utilitaire userdel
Nous avons vu quelques exemples de comment créer et modifier un compte utilisateur, voyons maintenant comment nous pouvons utiliser l’utilitaire userdel pour supprimer un et tous les fichiers associés. La syntaxe de l’utilitaire userdel est la même que celle que nous avons vue précédemment pour useradd et usermod :
userdel [options] LOGIN
L’utilitaire a moins d’options que useradd et usermod, pour des raisons évidentes. Le cas d’utilisation le plus courant est la suppression d’un compte utilisateur ainsi que de tous les fichiers contenus dans ses répertoires d’accueil et de spoule, ainsi que de ces répertoires eux-mêmes. Pour accomplir une telle tâche, nous exécuterions userdel avec l’option -r (--remove). Supposons que l’on veuille supprimer le compte « newuser », son répertoire personnel et spoule, on lancerait :
sudo userdel -r newuser
Si l’utilisateur est actuellement connecté, nous recevrons une erreur et le système refusera de le supprimer. Si nous voulons forcer l’opération, nous devons également utiliser l’option -f (--force). Soyez prévenus ! L’utilisation de cette option est dangereuse, car elle pourrait laisser le système dans un état incohérent.
Conclusions
Dans ce tutoriel, nous avons vu comment nous pouvons utiliser les utilitaires système useradd, usermod et userdel pour créer, modifier et supprimer respectivement un compte utilisateur. Nous avons vu quelques exemples et cas d’utilisation. Pour un aperçu complet de toutes les options qui peuvent être utilisées avec ces utilitaires, veuillez consulter leurs manuels.
