Recherche de site Web

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 :

OPTIONSIGNIFICATIONVALEUR PAR DÉFAUT
CRÉER_ACCUEILDéfinit si un répertoire personnel doit être créé pour les nouveaux utilisateursoui
MÉTHODE_DE_SAISIELa méthode de chiffrement utilisée pour chiffrer les mots de passeSHA512
UID_MINValeur uid minimale attribuée automatiquement aux utilisateurs standard1000
UID_MAXValeur uid maximale attribuée automatiquement aux utilisateurs standard60000
SYS_UID_MINValeur uid minimale attribuée automatiquement aux utilisateurs « système »201
SYS_UID_MAXValeur uid maximale attribuée automatiquement aux utilisateurs « système »999
PASS_MAX_JOURSNombre maximal de jours d’utilisation d’un mot de passe99999
JOUR_MIN_PASSNombre minimum de jours autorisés entre les changements de mot de passe
AVERTIR_L'AGE_DE_PASSNombre de jours d’avertissement avant l’expiration d’un mot de passe7

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.

Articles connexes: