Nous sommes tous conscients des commandes les plus populaires appelées ‘useradd‘ ou ‘adduser‘ sous Linux. Il arrive parfois qu’un administrateur système Linux soit chargé de créer des comptes d’utilisateurs sous Linux avec des propriétés, des limitations ou des commentaires spécifiques.
Dans Linux, la commande ‘useradd‘ est un outil de bas niveau utilisé pour ajouter ou créer des comptes d’utilisateurs sous Linux et d’autres systèmes d’exploitation Unix-like. La commande ‘adduser‘ est très similaire à la commande ‘useradd‘, car elle n’est qu’un lien symbolique vers celle-ci.
Dans certaines distributions Linux, la commande ‘useradd‘ peut avoir une version légèrement différente. Je suggère de lire votre documentation avant d’utiliser nos instructions pour créer de nouveaux comptes d’utilisateurs sous Linux.
Lorsque nous exécutons la commande ‘useradd‘ dans le terminal Linux, elle effectue les tâches majeures suivantes:
- Elle modifie les fichiers /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow pour les nouveaux comptes d’utilisateurs créés.
- Crée et remplit un répertoire de domicile pour le nouvel utilisateur.
- Définit les permissions et les droits d’accès pour le répertoire de domicile.
Commande useradd Syntaxe
La syntaxe de base de la commande ‘useradd‘ est:
useradd [options] username
Dans cet article, nous allons démontrer les 15 commandes ‘useradd’ les plus couramment utilisées avec des exemples pratiques dans Linux.
1. Comment Ajouter un Nouveau Utilisateur dans Linux
Pour ajouter ou créer un nouvel utilisateur, vous devez utiliser la commande ‘useradd‘ ou ‘adduser‘ suivie du ‘nom d’utilisateur‘. Le ‘nom d’utilisateur‘ est le nom de connexion utilisé par un utilisateur pour se connecter au système.
Un seul utilisateur peut être ajouté, et le nom d’utilisateur doit être unique et ne doit pas déjà exister sur le système.
Par exemple, pour ajouter un nouvel utilisateur nommé ‘tecmint‘, utilisez la commande suivante:
useradd tecmint
Lorsque nous ajoutons un nouvel utilisateur dans Linux avec la commande ‘useradd‘, il est créé dans un état verrouillé. Pour déverrouiller ce compte d’utilisateur, nous devons définir un mot de passe pour ce compte en utilisant la commande ‘passwd‘.
passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.

Une fois qu’un nouvel utilisateur est créé, son entrée est ajoutée automatiquement au fichier ‘/etc/passwd‘. Ce fichier est utilisé pour stocker les informations de l’utilisateur, et l’entrée devrait être.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

L’entrée ci-dessus contient un ensemble de sept champs séparés par des deux-points, chaque champ ayant son propre sens.
Voyons quels sont ces champs:
- Nom d’utilisateur – Le nom de connexion de l’utilisateur est utilisé pour se connecter au système. Il doit être compris entre 1 et 32 caractères de long.
- Mot de passe – Le mot de passe utilisateur (ou caractère
'x'
) est stocké dans le fichier ‘ /etc/shadow ‘ sous une forme cryptée. - Identifiant utilisateur (UID) – Chaque utilisateur doit avoir un Identifiant Utilisateur (UID), qui signifie Numéro d’Identification Utilisateur. Par défaut, UID 0 est réservé pour l’utilisateur root, et les UID allant de 1 à 99 sont réservés pour les comptes prédéfinis. De plus, les UID allant de 100 à 999 sont réservés pour les comptes système et les groupes.
- Identifiant de groupe (GID) – L’Identifiant de Groupe Principal (GID), qui signifie Numéro d’Identification de Groupe, est stocké dans le fichier ‘ /etc/group ‘.
- Informations sur l’utilisateur – Ce champ est facultatif et vous permet de définir des informations supplémentaires sur l’utilisateur, telles que le nom complet de l’utilisateur. Ces informations peuvent être renseignées à l’aide de la commande finger.
- Répertoire personnel – L’emplacement absolu du répertoire personnel de l’utilisateur.
- Shell – L’emplacement absolu d’une shell utilisateur, c’est-à-dire /bin/bash.
2. Comment créer un utilisateur avec un répertoire personnel différent
Par défaut, la commande ‘ useradd ‘ crée le répertoire personnel de l’utilisateur sous le répertoire ‘ /home ‘ avec le nom d’utilisateur. Par exemple, comme on peut le voir ci-dessus, le répertoire personnel par défaut pour l’utilisateur ‘ tecmint ‘ est ‘ /home/tecmint ‘.
Cependant, ce comportement peut être modifié en utilisant l’option '-d'
avec l’emplacement du nouveau répertoire de base (par exemple, ‘/data/projects‘). Par exemple, la commande suivante créera un utilisateur ‘anusha‘ avec un répertoire de base défini sur ‘/data/projects‘.
# useradd -d /data/projects anusha # passwd anusha
Vous pouvez consulter le répertoire de base de l’utilisateur et d’autres informations liées à l’utilisateur , telles que l’ID utilisateur, l’ID de groupe, le shell et les commentaires en utilisant la commande cat suivante.
cat /etc/passwd | grep anusha anusha:x:1001:1001::/data/projects:/bin/bash

3. Comment créer un utilisateur avec un ID utilisateur spécifique
Sous Linux, chaque utilisateur possède son propre UID (Numéro d’identification unique). Par défaut, lorsque nous créons un nouveau compte utilisateur sous Linux, il attribue les identifiants utilisateur 500, 501, 502, et ainsi de suite.
Cependant, nous pouvons créer des utilisateurs avec des identifiants utilisateur personnalisés en utilisant l’option '-u'
. Par exemple, la commande suivante créera un utilisateur ‘navin‘ avec un identifiant utilisateur personnalisé ‘1002‘.
useradd -u 1002 navin
Maintenant, vérifions que l’utilisateur a été créé avec un identifiant utilisateur défini (1002) en utilisant la commande suivante.
cat /etc/passwd | grep navin navin:x:1002:1002::/home/navin:/bin/bash

REMARQUE: Assurez-vous que la valeur de l’identifiant utilisateur doit être unique par rapport à tout autre utilisateur déjà créé sur le système.
4. Comment créer un utilisateur avec un ID de groupe spécifique
De même, chaque utilisateur a son propre GID (Identifiant de Groupe). Nous pouvons également créer des utilisateurs avec des identifiants de groupe spécifiques en utilisant l’option '-g'
.
Dans cet exemple, nous ajouterons un utilisateur ‘tarunika‘ avec un UID spécifique et un GID simultanément en utilisant les options '-u'
et '-g'
.
useradd -u 1005 -g tecmint tarunika
Maintenant, vérifiez l’identifiant utilisateur attribué et l’identifiant de groupe dans le fichier ‘/etc/passwd‘.
cat /etc/passwd | grep tarunika tarunika:x:1005:1000::/home/tarunika:/bin/bash
Pour vérifier le GID de l’utilisateur, utilisez la commande id :
id -gn tarunika

5. Comment Ajouter un Utilisateur à Plusieurs Groupes
L’option '-G'
est utilisée pour ajouter un utilisateur à des groupes supplémentaires. Chaque nom de groupe est séparé par une virgule, sans espaces intermédiaires.
Dans cet exemple, nous ajoutons un utilisateur ‘tecmint‘ à plusieurs groupes, tels que admins, webadmin, et developers.
groupadd admins groupadd webadmin groupadd developers usermod -a -G admins,webadmin,developers tecmint useradd -G admins,webadmin,developers paddy
Ensuite, vérifiez que les groupes multiples sont attribués à l’utilisateur avec la commande id.
id tecmint uid=1000(tecmint) gid=1000(tecmint) groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Comment Ajouter un Utilisateur Sans Répertoire Personnel
Dans certaines situations, où nous ne voulons pas attribuer de répertoires personnels à un utilisateur pour des raisons de sécurité, le répertoire personnel de l’utilisateur sera root lorsqu’il se connecte à un système qui vient de redémarrer. Lorsqu’un tel utilisateur utilise la commande ‘su‘, son répertoire de connexion sera le répertoire personnel de l’utilisateur précédent.
Pour créer des utilisateurs sans répertoires personnels, l’option '-M'
est utilisée. Par exemple, la commande suivante créera un utilisateur ‘shilpi‘ sans répertoire personnel.
useradd -M shilpi
Maintenant, vérifions que l’utilisateur est créé sans répertoire personnel en utilisant la commande ls.
ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

7. Comment créer un utilisateur avec une date d’expiration sous Linux
Par défaut, lorsque nous ajoutons des utilisateurs avec la commande ‘useradd‘, le compte utilisateur n’expire jamais, ce qui signifie que leur date d’expiration est définie sur 0 (ce qui signifie qu’il n’expire jamais).
Cependant, nous pouvons définir la date d’expiration en utilisant l’option '-e'
, qui doit être au format AAAA-MM-JJ. Cela est utile pour créer des comptes temporaires pour une période spécifique.
Dans cet exemple, nous créons un utilisateur ‘aparna‘ avec une date d’expiration de compte, qui est le 27 août 2021, au format AAAA-MM-JJ.
useradd -e 2021-08-27 aparna
Ensuite, vérifiez les informations de vieillissement du compte et du mot de passe en utilisant la commande ‘chage‘ pour l’utilisateur ‘aparna‘ après avoir défini la date d’expiration du compte.
chage -l aparna Last password change : Jun 25, 2021 Password expires : never Password inactive : never Account expires : Aug 27, 2021 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

8. Comment créer un utilisateur avec une date d’expiration de mot de passe
L’argument '-f'
est utilisé pour définir le nombre de jours après l’expiration d’un mot de passe. Une valeur de 0 désactive le compte utilisateur dès que le mot de passe a expiré. Par défaut, la valeur d’expiration du mot de passe est définie sur -1
, ce qui signifie qu’il n’expire jamais.
Dans cet exemple, nous allons définir une date d’expiration du mot de passe du compte, qui est de 45 jours, pour un utilisateur ‘mansi‘ en utilisant les options '-e'
et '-f'
.
useradd -e 2014-04-27 -f 45 mansi

9. Comment ajouter un utilisateur avec des commentaires dans Linux
L’option '-c'
vous permet d’ajouter des commentaires personnalisés, tels que le nom complet de l’utilisateur, le numéro de téléphone, etc., dans le fichier ‘/etc/passwd‘. Le commentaire peut être ajouté sous forme d’une seule ligne sans aucun espace.
Par exemple, la commande suivante ajoutera un utilisateur ‘mansi‘ et insérera le nom complet de cet utilisateur, Manis Khurana, dans le champ de commentaire.
useradd -c "Manis Khurana" mansi
Vous pouvez voir le commentaire inséré dans le fichier ‘/etc/passwd‘ dans la section des commentaires en utilisant la commande tail.
tail -1 /etc/passwd mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Comment créer une coquille de connexion utilisateur dans Linux
Parfois, nous ajoutons des utilisateurs qui n’ont rien à voir avec la coquille de connexion ou parfois nous devons attribuer différentes coquilles à nos utilisateurs. Nous pouvons attribuer différentes coquilles de connexion à chaque utilisateur avec l’option ‘-s‘.
Voici un exemple, nous allons ajouter un utilisateur ‘tecmint‘ sans shell de connexion, c’est-à-dire un shell ‘/sbin/nologin‘.
useradd -s /sbin/nologin tecmint
Vous pouvez vérifier le shell attribué à l’utilisateur dans le fichier ‘/etc/passwd‘.
tail -1 /etc/passwd tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. Comment créer un utilisateur avec un répertoire home, un shell et un commentaire spécifiés
La commande suivante va créer un utilisateur ‘ravi‘ avec un répertoire home ‘/var/www/tecmint‘, un shell par défaut de ‘/bin/bash‘, et des informations supplémentaires sur l’utilisateur.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

Dans la commande ci-dessus, les options '-m'
et '-d'
créent un utilisateur avec un répertoire home spécifié, et l’option '-s'
définit le shell par défaut de l’utilisateur sur ‘/bin/bash‘. L’option '-c'
ajoute des informations supplémentaires sur l’utilisateur et l’argument '-U'
crée/ajoute un groupe portant le même nom que l’utilisateur.
12. Comment créer un utilisateur avec un répertoire home, un shell, un commentaire, un UID/GID définis
La commande est très similaire à celle ci-dessus, mais ici nous définissons le shell comme ‘/bin/zsh‘ et définissons un UID et un GID personnalisés pour un utilisateur ‘tarunika’. L’option '-u'
définit l’UID du nouvel utilisateur (c’est-à-dire 100), et l’option '-g'
définit le GID (c’est-à-dire 1000).
useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Comment créer un utilisateur avec un home, sans shell, commentaire et UID
La commande suivante est très similaire aux deux commandes précédentes. La seule différence est qu’ici, nous avons désactivé le shell de connexion pour un utilisateur appelé ‘avishek‘ avec un ID utilisateur personnalisé (c’est-à-dire 1019).
L’option '-s'
définit le shell par défaut sur /bin/bash, mais dans ce cas, nous définissons le shell de connexion sur ‘/usr/sbin/nologin‘. Cela signifie que l’utilisateur ‘avishek‘ ne pourra pas se connecter au système.
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. Comment créer un utilisateur avec un domicile, un shell, un squelette et un UID spécifiés
La seule modification dans cette commande est que nous avons utilisé l’option '-k'
pour définir le répertoire de squelette personnalisé sur /etc/custom.skell au lieu de celui par défaut, /etc/skel. Nous avons également utilisé l’option '-s'
pour définir un shell différent, /bin/tcsh, pour l’utilisateur ‘navin‘.
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. Comment créer un utilisateur sans domicile, shell ou groupe, avec commentaire
La commande suivante est très différente des autres commandes expliquées ci-dessus. Ici, nous avons utilisé l’option '-M'
pour créer un utilisateur sans répertoire de départ de l’utilisateur, et l’option '-N'
est utilisée pour indiquer au système de créer uniquement un nom d’utilisateur (sans groupe). L’option '-r'
est utilisée pour créer un utilisateur système.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Pour plus d’informations et d’options sur ‘useradd‘, exécutez la commande ‘useradd‘ dans le terminal pour voir les options disponibles.
useradd
Si vous souhaitez modifier les attributs du compte utilisateur tels que le nom d’utilisateur, l’identifiant utilisateur (UID), le répertoire principal, le shell, et plus encore, utilisez la commande usermod.