useradd La commande est un utilitaire de bas niveau utilisé pour ajouter/créer des comptes d'utilisateurs sous Linux et d'autres Unix-like systèmes d'exploitation.
Linux est un système multi-utilisateurs, ce qui signifie que plusieurs personnes peuvent interagir avec le même système en même temps. Ces utilisateurs doivent être créés avant d'utiliser le système.
Lorsqu'il est invoqué, useradd
crée un nouveau compte utilisateur selon les options spécifiées sur la ligne de commande et les valeurs par défaut définies dans le /etc/default/useradd
dossier. useradd
lit également le contenu de /etc/login.defs
dossier. Ce fichier contient la configuration de la suite de mots de passe shadow, telle que la politique d'expiration des mots de passe, les plages d'ID utilisateur utilisées lors de la création d'utilisateurs système et réguliers, etc.
Seuls root ou les utilisateurs disposant de privilèges sudo peuvent utiliser la commande useradd pour créer un nouveau compte utilisateur. Lorsqu'il est appelé, useradd crée un nouveau compte utilisateur en fonction des options spécifiées sur la ligne de commande et des valeurs par défaut définies dans /etc/default/useradd
fichier.
- Il édite /etc/passwd , /etc/shadow , /etc/groupe et /etc/gshadow fichiers pour les comptes d'utilisateurs nouvellement créés.
- Crée et remplit un répertoire personnel pour le nouvel utilisateur.
- Définit les autorisations et les propriétés du répertoire d'accueil.
Table des matières
- Créer un nouvel utilisateur
- Ajouter un nouvel utilisateur et créer un répertoire personnel
- Créer un utilisateur avec un répertoire personnel différent
- Utilisateur avec un ID utilisateur spécifique
- Utilisateur avec un ID utilisateur spécifique
- Ajouter un utilisateur à plusieurs groupes
- Utilisateur sans répertoire personnel
- Utilisateur avec date d'expiration du compte
- Utilisateur avec date d'expiration du mot de passe
- Ajout de commentaires personnalisés à l'utilisateur
- Spécification d'un shell de connexion utilisateur
- Création d'un utilisateur système
- Enchaîner les arguments
- Modification des valeurs useradd par défaut
- Supprimer un utilisateur de Linux
- Ajout d'un groupe sous Linux
- Modifier le groupe d'utilisateurs
1. Créer un nouvel utilisateur
Syntaxe de base de useradd la commande est :
# sudo useradd [options] username
Exemple :
sudo useradd citizix
Lorsque nous ajoutons un nouvel utilisateur sous Linux avec le useradd commande, il est créé dans un état verrouillé et pour déverrouiller ce compte d'utilisateur, nous devons définir un mot de passe pour ce compte avec le passwd commande.
$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Une entrée est automatiquement ajoutée au /etc/passwd fichier :
$ cat /etc/passwd | grep citizix
citizix:x:1001:1001::/home/citizix:/bin/bash
Les champs du /etc/passwd
sont séparés par deux-points :
et ils représentent ce qui suit :
- Nom d'utilisateur :nom de connexion de l'utilisateur utilisé pour se connecter au système. Il doit comporter entre 1 et 32 caractères.
- Mot de passe :Mot de passe utilisateur (ou caractère x) stocké dans /etc/shadow fichier au format crypté.
- Identifiant utilisateur (UID) :Chaque utilisateur doit avoir un identifiant d'utilisateur (UID ) Numéro d'identification de l'utilisateur. Par défaut, UID 0 est réservé à l'utilisateur racine et aux UID allant de 1 à 99 sont réservés à d'autres comptes prédéfinis. Autres UID allant de 100 à 999 sont réservés aux comptes système et aux groupes.
- Identifiant de groupe (GID) :L'ID de groupe principal (GID ) Numéro d'identification de groupe stocké dans /etc/group fichier.
- Informations utilisateur :Ce champ est facultatif et permet de définir des informations supplémentaires sur l'utilisateur. Par exemple, le nom complet de l'utilisateur. Ce champ est rempli par la commande 'finger'.
- Répertoire d'accueil :L'emplacement absolu du répertoire personnel de l'utilisateur.
- Coquille :L'emplacement absolu du shell d'un utilisateur, c'est-à-dire /bin/bash .
2. Ajouter un nouvel utilisateur et créer un répertoire personnel
Utilisez le -m
(--create-home
) option pour créer le répertoire personnel de l'utilisateur sous la forme /home/username
:
sudo useradd -m username
La commande ci-dessus crée le répertoire personnel du nouvel utilisateur et copie les fichiers de /etc/skel
répertoire vers le répertoire personnel de l'utilisateur.
3. Créer un utilisateur avec un répertoire personnel différent
Par défaut, useradd créera un répertoire personnel avec le même nom que le nom d'utilisateur. Pour créer un répertoire personnel différent, utilisez le -d
argument avec le chemin d'accès à ce répertoire.
Cette commande crée le répertoire personnel /opt/citizixone
pour l'utilisateur citizixone.
sudo useradd -d /opt/citizixone citizixone
Vérifiez dans /etc/passwd
$ cat /etc/passwd | grep citizixone
citizixone:x:1002:1002::/opt/citizixone:/bin/bash
4. Utilisateur avec un ID utilisateur spécifique
Si vous devez spécifier un ID utilisateur pour l'utilisateur en cours de création, utilisez l'argument -u
(--uid
) comme ceci :
sudo useradd -u 1009 citizix
5. ID de groupe spécifique
Pour spécifier un identifiant de groupe, utilisez le -g
(--gid
) comme dans cet exemple :
sudo useradd -g citizix citizixtwo
Vérifiez le GID de l'utilisateur avec cette commande :
$ sudo id citizixtwo
uid=1003(citizixtwo) gid=1001(citizix) groups=1001(citizix)
$ cat /etc/passwd | grep citizixtwo
citizixtwo:x:1003:1001::/home/citizixtwo:/bin/bash
6. Ajouter un utilisateur à plusieurs groupes
Si vous souhaitez ajouter un utilisateur à plusieurs groupes, utilisez le -G
(--groups
) comme dans cet exemple :
Ajoutez l'utilisateur citizix
aux groupes admins
, webadmin
, developers
:
sudo usermod -a -G admins,webadmin,developers citizix
Créer un utilisateur citizixtwo
en l'ajoutant aux groupes admins
, webadmin
, developers
:
sudo useradd -G admins,webadmin,developers citizix
Utilisez ces commandes pour vérifier que les utilisateurs ont bien été ajoutés aux groupes :
sudo id citizix
sudo id citizixtwo
7. Utilisateur sans répertoire personnel
Si vous souhaitez créer un utilisateur sans répertoire personnel, utilisez le -M
choix :
sudo useradd -M citizix
8. Utilisateur avec date d'expiration du compte
Parfois, vous souhaitez créer un utilisateur avec une date d'expiration. Utilisez cette commande pour créer un utilisateur citizixfour
qui expirera le 2021-12-30
:
sudo useradd -e 2021-12-30 citizixfour
Pour vérifier l'âge du compte et du mot de passe, utilisez le chage
commande :
$ sudo chage -l citizixfour
Last password change : Oct 08, 2021
Password expires : never
Password inactive : never
Account expires : Dec 30, 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
9. Utilisateur avec date d'expiration du mot de passe
Le -f
L'argument est utilisé pour définir le nombre de jours pendant lesquels l'utilisateur est inactivé après l'expiration d'un mot de passe. Une valeur de 0
désactiver 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
signifie ne jamais expirer.
Ici, dans cet exemple, nous allons définir une date d'expiration du mot de passe du compte à 45 days
sur un utilisateur citizixfive
en utilisant -e
et -f
options.
sudo useradd -e 2021-12-30 -f 45 citizixfive
sudo chage -l citizixfive
10. Ajouter des commentaires personnalisés à l'utilisateur
Le -c
(--comment
) ajoute une courte description pour le nouvel utilisateur. Généralement, le nom complet de l'utilisateur ou les informations de contact sont ajoutés sous forme de commentaire.
sudo useradd -c "Citizix User" citizixsix
Vérifiez le /etc/passwd
$ cat /etc/passwd | grep citizixsix
citizixsix:x:1006:1006:Citizix User:/home/citizixsix:/bin/bash
11. Spécification d'un shell de connexion utilisateur
Le -s
(--shell
) est utilisée pour spécifier un shell de connexion. Nous pouvons soit utiliser l'un des shells installés comme /bin/bash
ou bin/zsh
ou pour les utilisateurs qui n'ont rien à voir avec le shell de connexion, nous pouvons faire /sbin/nologin
pour préciser qu'il n'y a pas de shell de connexion :
# Specify /bin/zsh
sudo useradd -s /bin/zsh citizix
# Specify no login
sudo useradd -s /sbin/nologin citizix
12. Création d'un utilisateur système
Parfois, nous avons besoin d'utilisateurs système qui seront utilisés soit par le système, soit par les applications que nous installons dans le système.
Utilisez le -r
(--system
) argument pour définir un utilisateur système :
sudo useradd -r grafana
13. Enchaîner les arguments
On peut aussi enchaîner les arguments lors de la création d'un utilisateur.
Vérifiez cet exemple de création d'un utilisateur lors de la création d'un répertoire personnel spécifié /var/www/citizix
et définir un shell de connexion personnalisé /bin/zsh
et en ajoutant un commentaire Citizix Web User
:
sudo useradd -m -d /var/www/citizix -s /bin/zsh -c "Citizix Web User" -U citizix
14. Modification des valeurs useradd par défaut
Le useradd
les valeurs par défaut sont stockées dans le fichier /etc/default/useradd
.
Vérifier le contenu de /etc/default/useradd
:
$ cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Vous pouvez également les interroger en utilisant l'argument -D
pour useradd
commande :
$ sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Pour mettre à jour ou modifier ces valeurs, modifiez le fichier ou utilisez le useradd -D
passer les valeurs.
Exemple de modification du shell de connexion depuis /bin/bash
vers /bin/zsh
sudo useradd -D -s /bin/zsh
Vérifions qu'il a été mis à jour :
$ sudo useradd -D | grep -i shell
SHELL=/bin/zsh
15. Suppression d'un utilisateur sous Linux
Pour supprimer un utilisateur, utilisez le userdel
commande :
sudo userdel citizixfive
16. Ajouter un groupe sous Linux
Pour créer manuellement un groupe, utilisez la commande.
Cela crée un groupe sftp-users
dans notre système :
sudo groupadd sftp-users
Confirmons que le groupe a bien été créé
$ sudo grep sftp-users /etc/group
sftp-users:x:1007:
Utilisez la commande -G
pour les autres groupes (-G
ajoute l'utilisateur à un nouveau groupe mais le conserve également dans l'ancien (ajout).
Utilisez l'id
commande pour confirmer
sudo id citizix
17. Changer de groupe d'utilisateurs
Pour créer un utilisateur et remplacer son groupe principal par celui spécifié, utilisez le -g
choix :
sudo useradd -g citizix citizixseven
Conclusion
Nous avons exploré comment effectuer des opérations de base avec le useradd
commandes. Nous avons réussi à créer des utilisateurs, à les ajouter à des groupes et à les modifier ou à les supprimer.
Vous pouvez utiliser les pages de manuel pour en savoir plus sur la commande useradd :
man useradd
Pour vérifier toutes les options de useradd, tapez la commande dans le terminal sans option :
$ useradd
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping