Présentation
Linux est un environnement multi-utilisateurs et le provisionnement des utilisateurs est une responsabilité essentielle dans la gestion du système. Les administrateurs système ajoutent, suppriment et gèrent des utilisateurs et des groupes sur le système.
Le useradd
La commande fournit diverses options, résultant en un moyen complet d'automatiser la gestion des identités et des accès.
Cet article explique comment créer et ajouter des utilisateurs sous Linux.
Prérequis
- Accès au terminal pour exécuter les commandes.
- Accès à un utilisateur avec des autorisations sudo ou root.
- Un éditeur de texte, tel que nano ou Vim.
- Commandes Linux de base (consultez notre aide-mémoire sur les commandes Linux).
Syntaxe de la commande useradd
La syntaxe de base pour le useradd
la commande est :
useradd <options> <username>
L'exécution de la commande crée un nouveau compte utilisateur ou met à jour un utilisateur existant en fonction des valeurs dans :
- /etc/default/useradd - Les valeurs par défaut pour le
useradd
commande. - /etc/login.defs - Valeurs de contrôle de configuration pour le package de connexion.
- Le
<options>
fournis avec la commande, qui mettent à jour ou remplacent la configuration prédéfinie.
Les valeurs par défaut varient selon les différents systèmes.
Les règles limitent le nom d'utilisateur à :
- Longueur entre 1 et 32 caractères.
- Le nom d'utilisateur commence par une lettre minuscule ou un trait de soulignement.
- Le nom d'utilisateur peut contenir n'importe quelle combinaison de lettres majuscules et minuscules, de chiffres, de tirets et de traits de soulignement.
- Le nom d'utilisateur peut se terminer par un signe dollar (
$
).
L'expression régulière pour vérifier la validité du nom d'utilisateur est :
[a-z_][a-z0-9_-]*[$]
Remarque : Debian suit un ensemble de règles différent pour les noms d'utilisateur. Cependant, les règles fournies sont un bon point de départ pour tous les systèmes afin d'éviter les problèmes.
De plus, la commande crée également un groupe pour le nouvel utilisateur. L'ajout d'un nouvel utilisateur nécessite des autorisations sudo pour modifier les fichiers de stockage des informations sur les utilisateurs et les groupes.
Options de commande useradd
Le useradd
La commande est livrée avec diverses options. Les options courantes sont dans le tableau ci-dessous :
Option | Description |
---|---|
-b <directory> --base-dir <directory> | Définit un répertoire de base par défaut pour le système. |
-c <information> --comment <information> | Définit une brève description de l'utilisateur, telle que le nom complet ou le rôle. |
-d <home directory> --home-dir <home directory> | Le répertoire de connexion de l'utilisateur. |
-D --defaults | Affiche les valeurs par défaut ou les modifie lorsqu'elles sont combinées avec d'autres options. |
-e <YY-MM-DD> --expiredate <YY-MM-DD> | La date d'expiration du compte utilisateur. |
-f <days> --inactive <days> | Définit le délai en jours pendant lequel le compte devient inactif après l'expiration d'un mot de passe. |
-g <name or number> --gid <name or number> | Établit le groupe de connexion initial de l'utilisateur. |
-G <group1,group2,etc> --groups <group1,group2,etc> | Ajoute un utilisateur à des groupes supplémentaires. |
-k <skeleton directory> --skel <skeleton directory> | Copie les fichiers et répertoires dans le répertoire personnel de l'utilisateur. |
-m --create-home | Crée un répertoire personnel pour un utilisateur s'il n'existe pas. |
-M --no-create-home | Ne crée pas de répertoire personnel (supprime les paramètres système). |
-o --non-unique | Se combine avec -u pour autoriser les UID en double. |
-p <password> --password <password> | Définit le mot de passe de l'utilisateur (non recommandé). |
-r --system | Ajoute un compte système. |
-s <shell path> --shell <shell path> | Définit le shell de connexion de l'utilisateur. |
-u <uid> --uid <uid> | ID de valeur numérique unique. |
-U --user-group | Crée un groupe avec le même nom que l'utilisateur et ajoute l'utilisateur au groupe. |
Création de nouveaux utilisateurs sous Linux
La création de nouveaux utilisateurs sous Linux effectue les opérations suivantes :
1. Fournit un UID et un GID uniques .
- 0 est réservé à root et attribué automatiquement.
- 1-999 concerne les comptes système et les services.
- 1 000 et ci-dessus sont pour les utilisateurs réguliers.
Remarque : Les chiffres varient entre les différents systèmes d'exploitation. Les exemples de valeurs sont pour Ubuntu.
2. Modifie les fichiers qui stockent les informations de compte.
- /etc/passwd - Répertorie tous les utilisateurs enregistrés sur le système.
- /etc/shadow - Stocke les mots de passe utilisateur chiffrés.
- /etc/group - Définit les groupes d'utilisateurs.
- /etc/gshadow - Stocke les mots de passe de groupe chiffrés.
3. Définit les autorisations des utilisateurs sur le répertoire personnel via le groupe.
Remarque : Linux fournit également une commande pour modifier les utilisateurs existants avec usermod.
Suivez les exemples ci-dessous pour voir comment ajouter des utilisateurs sous Linux.
Ajout d'un utilisateur sous Linux
Pour ajouter un utilisateur sous Linux, exécutez la commande suivante dans le terminal :
sudo useradd <username>
Si vous y êtes invité, entrez le mot de passe sudo pour continuer.
Sans aucune option, le useradd
La commande ajoute un utilisateur en fonction des options prédéfinies dans /etc/useradd dossier. Le nouvel utilisateur est dans un état verrouillé et nécessite un mot de passe pour le déverrouiller. Utilisez la commande passwd pour déverrouiller le compte :
sudo passwd <username>
La commande vous invite à entrer et à confirmer le mot de passe.
Remarque : Les mots de passe sont un aspect important de la sécurité. Consultez notre guide pour des idées de mots de passe forts.
Après avoir créé un mot de passe, une nouvelle entrée apparaît automatiquement dans le /etc/passwd dossier. Pour voir les informations, affichez le fichier avec la commande cat et grep pour l'utilisateur :
sudo cat /etc/passwd | grep <username>
Les champs sont au format suivant :
username:password:UID:GID:info:/home/directory:shell/path
Le x
représente et masque le mot de passe de l'utilisateur pour des raisons de sécurité. Le mot de passe crypté est dans le /etc/shadow dossier.
Ajout d'un utilisateur sous Linux et création d'un répertoire personnel
Par défaut, le useradd
La commande ne crée pas de répertoire personnel. Le /etc/passwd le fichier affiche un lien absolu (/home//
) après la connexion.
Pour créer automatiquement un utilisateur et le répertoire personnel, utilisez le -m
choix :
sudo useradd -m <username>
Vérifiez si le répertoire existe avec la commande ls :
ls -lah /home/<username>
Le répertoire contient les fichiers d'initialisation copiés depuis le répertoire /etc/skel annuaire.
Ajout d'un utilisateur avec un répertoire personnel spécifique
Pour ajouter un utilisateur sous Linux avec un répertoire personnel spécifique, utilisez le -m
option avec -d
et indiquez le chemin du répertoire :
sudo useradd -m -d <path> <username>
Le useradd
la commande avertit que le répertoire existe déjà et ne copie pas les fichiers de /etc/skel . Utilisez cette option pour créer un répertoire personnel personnalisé ou partagé.
Ajout d'un utilisateur sans répertoire personnel
Si le /etc/login.defs configuration CREATE_HOME
la valeur de la variable est yes
, le useradd
La commande crée automatiquement un répertoire personnel.
Pour remplacer les paramètres par défaut et ajouter un utilisateur sans répertoire personnel, utilisez le -M
choix :
sudo useradd -M <username>
La commande ajoute l'utilisateur sans créer de répertoire personnel, remplaçant les paramètres par défaut.
Ajout d'un utilisateur avec un ID utilisateur spécifique
Pour ajouter un utilisateur avec un ID utilisateur spécifique, utilisez le -u
tag et fournissez l'UID :
sudo useradd -u <uid> <username>
Si l'UID n'est pas unique, le terminal émet un message et n'ajoute pas l'utilisateur. Vérifiez l'UID avec le id
commande :
id <username>
Utilisez un UID supérieur à 1000 pour indiquer un utilisateur régulier.
Ajout d'un utilisateur avec un ID de groupe spécifique
Pour créer un utilisateur et l'ajouter à un groupe spécifique, utilisez le -g
balise :
sudo useradd -g <group name or GID> <username>
Le nom de groupe ou GID doit exister. Sinon, la commande renvoie une erreur. Vérifiez le GID de l'utilisateur avec :
id <username>
La sortie imprime l'ID de groupe de l'utilisateur.
Ajouter un utilisateur à plusieurs groupes
Ajouter un utilisateur à plusieurs groupes avec le -G
option et répertoriez les noms de groupe ou les GID dans une liste séparée par des virgules, suivis du nom d'utilisateur. Par exemple :
sudo useradd -G <group1,group2,group3> <username>
Vérifiez les groupes de l'utilisateur avec :
id <username>
Les groupes doivent exister et la liste ne doit contenir aucun espace. La commande n'ajoute pas l'utilisateur si aucun groupe n'existe.
Remarque : Pour ajouter un utilisateur existant à un groupe, consultez le guide suivant :Comment ajouter un utilisateur à un groupe sous Linux.
Ajout d'un utilisateur avec un shell de connexion spécifique
Chaque nouvel utilisateur obtient un shell de connexion par défaut (tel que le shell Bourne ou Bourne Again Shell). Pour définir explicitement le shell de l'utilisateur, ajoutez le -s
tag et indiquez le chemin du shell :
sudo useradd -s <shell path> <username>
Par exemple, pour ajouter un utilisateur et définir Bash comme shell de connexion par défaut, exécutez :
sudo useradd -s /bin/bash <username>
Vérifiez le /etc/passwd fichier pour confirmer la sélection du shell :
cat /etc/passwd | grep <username>
Le dernier champ affiche le shell de connexion du nouvel utilisateur.
Ajouter un utilisateur avec un commentaire spécifique
Pour ajouter un utilisateur avec un commentaire spécifique, exécutez :
sudo useradd -c <comment> <username>
Pour afficher le commentaire, vérifiez le /etc/passwd file et grep pour l'utilisateur :
sudo cat /etc/passwd | grep <username>
Le commentaire est uniquement à des fins descriptives et n'a aucune fonctionnalité réelle.
Ajout d'un utilisateur avec la date d'expiration du compte
Ajoutez un utilisateur avec une date d'expiration de compte pour supprimer automatiquement le compte après la date indiquée :
sudo useradd -e <YY-MM-D> <username>
Afficher les informations d'expiration du compte avec :
sudo chage -l <username>
La sortie imprime la date d'expiration du compte (Account expires
). Utilisez cette option pour les comptes temporaires.
Ajouter un utilisateur avec une période de désactivation
Si un utilisateur a défini un mot de passe d'expiration, le useradd
La commande permet d'indiquer une période avant que le compte ne se désactive après expiration. Si un compte expire, la période d'expiration permettra aux utilisateurs de changer leur mot de passe et de réactiver le compte.
Utilisez le -f
commande et ajoutez le nombre de jours :
sudo useradd -f <days> <username>
Par exemple, pour désactiver un compte trois jours après l'expiration du mot de passe, exécutez :
sudo useradd -f 3 <username>
Afficher les informations d'expiration avec :
sudo cat /etc/shadow | grep <username>
Le /etc/shadow le fichier stocke les informations de mot de passe, y compris le temps d'inactivité (du troisième au dernier champ).
Utilisez cette méthode pour désactiver les utilisateurs qui ne changent pas leur mot de passe dans le délai imparti.
La période de désactivation est une bonne mesure de sécurité et la durée recommandée est de 35 jours. Les besoins de l'entreprise dictent quelle est la durée idéale avant l'expiration du compte. Si la valeur est trop faible, les conséquences sont coûteuses pour un administrateur, alors qu'une valeur élevée impacte la sécurité.
Ajout d'un utilisateur système
Les programmes et les systèmes créent des comptes d'utilisateurs système, qui sont différents des utilisateurs réguliers. Des programmes tels que MySQL ou Tomcat nécessitent un compte utilisateur unique pour fonctionner sur le système, et les démons créent généralement des utilisateurs système lors de l'installation.
Pour créer un utilisateur système, utilisez le -r
choix :
sudo useradd -r <username>
Vérifiez les informations de l'utilisateur avec :
sudo cat /etc/passwd | grep <username>
L'utilisateur a un UID inférieur à 1000, indiquant qu'il s'agit d'un utilisateur système.
La commande adduser
Le adduser
La commande est une autre façon d'ajouter des utilisateurs à un système Linux et agit comme une simple interface interactive pour useradd
.
Pour ajouter un utilisateur, exécutez :
sudo adduser <username>
La commande imprime l'utilisateur et le groupe sur la console.
Ensuite, la commande demande ce qui suit :
- Mot de passe, qui doit être ressaisi pour continuer.
- Informations sur l'utilisateur. Les données agissent comme un commentaire (identique à
useradd -c
commande et option).
Appuyez sur Y pour terminer le processus. En cas d'erreur, appuyez sur N et ressaisissez les informations correctes.
Vérifiez les paramètres du adduser
commande avec :
sudo cat /etc/passwd | grep <username>
La commande ajoute toutes les valeurs saisies lors de l'exécution de la commande et le shell Bash par défaut.
Ajouter plusieurs utilisateurs
Le useradd
et adduser
Les commandes ne prennent pas en charge l'ajout simultané de plusieurs utilisateurs. Pour ajouter plusieurs utilisateurs, utilisez une boucle Bash for dans un script ou directement dans le terminal pour parcourir une liste de noms d'utilisateur.
Remarque : Découvrez les différences entre les commandes useradd et adduser.
Par exemple, pour ajouter dix utilisateurs, procédez comme suit :
1. Créez un fichier texte à l'aide d'un éditeur de texte :
nano user_list.txt
2. Ajoutez les noms d'utilisateur au fichier, en les saisissant sur une nouvelle ligne. Par exemple :
alice
bob
charlie
dave
Enregistrez le fichier et fermez nano (CTRL +X , O , puis Entrée ).
3. Utilisez un for
boucle pour répertorier les noms dans le fichier et exécutez useradd
sur chaque :
for i in `cat ~/user_list.txt` ; do useradd $i ; done
4. Afficher les utilisateurs créés avec :
for i in `cat ~/user_list.txt` ; do id $i ; done
Pour ajouter des mots de passe, échangez la commande dans le do
clause avec passwd
et saisissez le mot de passe de chaque utilisateur. Vous pouvez également utiliser la commande expect pour automatiser le processus de création de mot de passe, en particulier si vous travaillez avec un grand nombre d'utilisateurs.
Conclusion
Après avoir terminé ce guide, vous savez comment ajouter de nouveaux utilisateurs à un système Linux avec le useradd
commande.
Ensuite, découvrez la gestion des accès privilégiés et comment elle contribue à réduire les attaques de sécurité et les violations de données.