GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer les utilisateurs avec useradd sous Linux

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

  1. Créer un nouvel utilisateur
  2. Ajouter un nouvel utilisateur et créer un répertoire personnel
  3. Créer un utilisateur avec un répertoire personnel différent
  4. Utilisateur avec un ID utilisateur spécifique
  5. Utilisateur avec un ID utilisateur spécifique
  6. Ajouter un utilisateur à plusieurs groupes
  7. Utilisateur sans répertoire personnel
  8. Utilisateur avec date d'expiration du compte
  9. Utilisateur avec date d'expiration du mot de passe
  10. Ajout de commentaires personnalisés à l'utilisateur
  11. Spécification d'un shell de connexion utilisateur
  12. Création d'un utilisateur système
  13. Enchaîner les arguments
  14. Modification des valeurs useradd par défaut
  15. Supprimer un utilisateur de Linux
  16. Ajout d'un groupe sous Linux
  17. 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

Linux
  1. Gérez les répertoires personnels des utilisateurs Linux avec systemd-homed

  2. Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

  3. Comment créer plusieurs comptes d'utilisateurs sous Linux

  4. Gérer les utilisateurs Linux et les groupes Linux

  5. Comment gérer les autorisations/propriétés des fichiers et des répertoires sous Linux

Comment créer des utilisateurs à l'aide de la commande Useradd sous Linux

Comment gérer les versions de Nodejs avec n sous Linux

Ajout de nouveaux utilisateurs sous Linux avec la commande Useradd

Comment créer et gérer de nouveaux utilisateurs sous Linux

Comment gérer le stockage avec GParted Linux

Comment créer/ajouter des utilisateurs sous Linux