Dans les systèmes d'exploitation Linux et Unix, la commande la plus courante pour créer des utilisateurs est 'useradd' ou 'adduser'. En tant qu'administrateur système, il est souvent nécessaire d'ajouter des utilisateurs, de supprimer des utilisateurs, de créer des groupes et d'attribuer des utilisateurs.
Il n'y a pas de différence entre les deux commandes mentionnées ci-dessus en termes de fonctionnalités. La commande adduser est plus conviviale et certains administrateurs Debian/Ubuntu adorent l'utiliser. Useradd est compilé en binaire avec le système Linux et fonctionne comme un backend pour adduser.
Dans ce didacticiel, nous apprenons à créer des utilisateurs sous Linux à partir du terminal à l'aide de la commande useradd.
Commande et syntaxe Useradd
La ligne suivante montre la syntaxe de la commande useradd :
useradd [OPTIONS] username
Un utilisateur peut être ajouté simplement en donnant le nom d'utilisateur suivi de la commande. Vous devez exécuter useradd
commande avec le privilège d'utilisateur root ou sudo.
Apprenons-en plus sur useradd
commande et ses options.
1) Comment créer un nouvel utilisateur sous Linux
Comme mentionné ci-dessus, pour créer un nouvel utilisateur, nous utilisons la commande useradd.
La commande suivante crée un nouvel utilisateur nommé 'bill' et la deuxième commande définit un nouveau mot de passe pour l'utilisateur ("bill").
$ sudo useradd bill
$ sudo passwd bill
Cela crée l'utilisateur avec le répertoire d'accueil en tant que /home/bill
et copie les fichiers du répertoire '/etc/skel' vers le répertoire personnel de l'utilisateur.
$ ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar 9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar 9 06:49 ..
-rw-r--r--. 1 bill bill 18 Nov 8 16:21 .bash_logout
-rw-r--r--. 1 bill bill 141 Nov 8 16:21 .bash_profile
-rw-r--r--. 1 bill bill 312 Nov 8 16:21 .bashrc
Cette commande ajoute une entrée aux fichiers /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow.
Remarque :sur les distributions liées à Ubuntu et Debian, useradd ne créera pas de répertoire personnel par défaut, sauf si vous devez le spécifier avec des options. Au lieu de cela, Debian recommande d'utiliser la commande adduser.
2) Créer un utilisateur avec un répertoire personnel spécifique
Pour créer un utilisateur avec un répertoire personnel spécifique comme valeur pour la connexion de l'utilisateur, utilisez -d
option. Assurez-vous de créer le répertoire personnel de base à l'aide de la commande mkdir avant d'exécuter la commande.
Créons le répertoire personnel de base appelé "devops" :
$ sudo mkdir /devops
Maintenant, la commande suivante crée l'utilisateur 'bill' et définit son répertoire personnel comme '/devops/billhome'.
$ sudo useradd -d /devops/billhome bill
Output
$ sudo useradd -d /devops/billhome bill
$ ls -al /devops/billhome
total 12
drwxr-xr-x 2 bill bill 100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r-- 1 bill bill 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 bill bill 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 bill bill 807 Apr 4 2018 .profile
Vous pouvez utiliser une combinaison de -m (créer un répertoire personnel s'il n'existe pas) et -d (définir le chemin donné comme nom du répertoire de connexion de l'utilisateur) pour créer un utilisateur.
$ sudo useradd -m -d /home/bobhome bob
3) Création d'un utilisateur avec un ID utilisateur spécifique
Par défaut, lorsque vous créez un utilisateur, il attribue le prochain UID disponible défini dans le fichier login.defs. Mais en utilisant -u
option, vous pouvez créer un utilisateur avec un UID spécifique.
Dans l'exemple suivant, une facture d'utilisateur est créée avec un UID spécifique (3210).
$ useradd -u 3210 bill
$ grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash
L'UID peut être vu dans le fichier '/etc/passwd' comme indiqué dans la sortie ci-dessus.
4) Créer un utilisateur avec un shell de connexion spécifique
Parfois, nous devons créer un utilisateur avec un shell de connexion spécifique (comme ksh, tcsh, zsh, etc.) ou sans connexion au shell ('/sbin/nologin').
Nous pouvons spécifier le shell de connexion associé au compte de l'utilisateur avec -s
comme indiqué ci-dessous :
$ useradd -s /bin/tcsh bill
Vous pouvez vérifier le shell de connexion en extrayant le nom d'utilisateur du fichier /etc/passwd :
$ grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh
5) Créer un répertoire personnel de base spécifique
Par défaut, les répertoires personnels des utilisateurs sont situés dans le répertoire '/home' (variable dans /etc/default/useradd ). En utilisant -b
option, vous pouvez avoir un répertoire personnel de base différent pour le nouvel utilisateur.
La commande suivante définit le répertoire '/mnt' comme répertoire de base et crée un répertoire personnel de l'utilisateur 'bill' en tant que '/mnt/bill'.
$ useradd -b /mnt bill
$ grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash
6) Créer un utilisateur avec une date d'expiration
Lors de la création d'un nouvel utilisateur, pouvez-vous définir une date d'expiration pour le compte d'utilisateur en utilisant -e
option.
L'exemple suivant définit la date d'expiration (le format de la date est AAAA-MM-JJ ) pour l'utilisateur 'facture'.
$ sudo useradd -e 2013-06-23 bill
Ceci peut être vérifié en vérifiant le dernier champ du fichier '/etc/shadow'. Le dernier champ (15879) indique la date d'expiration en termes de nombre de jours depuis le 1er janvier 1970, le compte est désactivé.
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:
Un moyen plus simple de vérifier la date d'expiration de l'utilisateur consiste à utiliser la commande chage comme indiqué ci-dessous :
$ sudo chage -l bill
Last password change : Feb 10, 2013
Password expires : never
Password inactive : never
Account expires : Jun 23, 2013
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
Le -f
L'option fournit le nombre de jours après l'expiration d'un mot de passe jusqu'à ce que le compte soit définitivement désactivé. La valeur de 0
désactive le compte dès que le mot de passe a expiré.
$ sudo useradd -f 20 bill
Comme indiqué dans le fichier shadow, le nombre de jours est défini sur 20 (dans l'avant-dernière colonne).
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::
7) Créer un utilisateur et l'ajouter à plusieurs groupes
Chaque utilisateur sous Linux doit rester dans un groupe principal et zéro ou plusieurs groupes secondaires (groupe supplémentaire).
Le groupe principal d'un utilisateur auquel il appartient peut être défini avec l'option -g. Le groupe fourni avec cette option doit déjà exister.
$ sudo useradd -g xero bill
$ sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Le groupe peut être vérifié avec la commande id. Le -G
L'option est utilisée pour ajouter un utilisateur à des groupes supplémentaires.
$ sudo useradd -G g1,g2,g3 bill
$ sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Voyons comment créer un utilisateur et l'affecter à plusieurs groupes. La commande créera un nouvel utilisateur nommé 'bill' avec le groupe principal 'teams' et les groupes secondaires 'admin' et 'apache'.
$ sudo useradd -g teams -G admin,apache bill
8) Créer un ID utilisateur en double
Le -o
L'option permet de créer un compte utilisateur avec un ID utilisateur en double (non unique). Vous devez fournir un numéro UID avec -u
option.
Vérifiez l'exemple suivant :
$ sudo useradd -o -u 503 bill
Ici, nous pouvons voir qu'il existe deux comptes avec 503 ID.
$ sudo grep 503 /etc/passwd
jenny:x:503:503::/home/jenny:/bin/bash
bill:x:503:505::/home/bill:/bin/bash
9) Créer un utilisateur en tant que compte système
Normalement, les UID jusqu'à 500 ou 1000 sont réservés aux comptes système et ne sont pas attribués aux utilisateurs normaux. Avec -r
option, un compte avec ID dans la gamme des utilisateurs du système est attribué à l'utilisateur en cours de création.
$ sudo useradd -r bill
$ sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash
Ici, le répertoire personnel de l'utilisateur n'est pas créé. Il doit être créé manuellement ou fourni avec -m
option.
10) Créer un utilisateur sans répertoire personnel
Si vous ne souhaitez pas créer de répertoire personnel par lui-même, -M
option peut être donnée.
$ sudo useradd -M bill
$ sudo grep bill /etc/passwd
bill:x:504:505::/home/bill:/bin/bash
$ ls /home/bill
ls: /home/bill: No such file or directory
Dans la sortie de la commande ls, on peut voir que le répertoire personnel de l'utilisateur bill n'existe pas.
11) Créer un utilisateur avec un mot de passe
Le mot de passe de l'utilisateur est désactivé par défaut. Vous pouvez définir manuellement le mot de passe à l'aide de la commande passwd. Mais si vous souhaitez fournir le mot de passe au moment de la création de l'utilisateur, vous pouvez utiliser -p
option.
Mais le mot de passe fourni ici doit être chiffré, tel que renvoyé par crypt(3).
$ sudo useradd -p '$1$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill
12) Modification des options par défaut
Lorsqu'un utilisateur est ajouté sur un système, certaines valeurs sont prises par défaut, par exemple le shell, le répertoire de base, etc. Le répertoire de base est le répertoire où résident les répertoires personnels des utilisateurs. Sur la plupart des systèmes Linux, les répertoires personnels des utilisateurs résident dans le répertoire /home.
Par exemple, le répertoire personnel de l'utilisateur tom sera '/home/tom' par défaut. Donc /home sera son répertoire de base. Ces options par défaut sont définies dans le fichier '/etc/defaults/useradd'. Ces valeurs par défaut peuvent être visualisées avec -D
option à la commande useradd :
$ sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
La commande ci-dessus peut également être exécutée par des utilisateurs normaux (utilisateurs non root). Le -D
L'option est utilisée non seulement pour afficher les valeurs par défaut, mais également pour modifier les valeurs par défaut.
13) Créer un utilisateur avec un commentaire personnalisé
Nous pouvons fournir le nom complet ou une courte description de l'utilisateur (un commentaire) lors de la création d'un utilisateur. Vous devez utiliser -c
possibilité d'ajouter des commentaires personnalisés.
Laissez-moi vous montrer un exemple :
$ sudo useradd -c "Bill Drape" bill
Ce commentaire peut être vu dans l'entrée de l'utilisateur dans le fichier '/etc/passwd'.
$ sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash
Conclusion
Dans ce didacticiel, nous avons appris à créer des utilisateurs sous Linux et différentes options de la commande useradd. J'espère que vous avez apprécié la lecture et s'il vous plaît laissez vos suggestions dans la section des commentaires ci-dessous.