useradd - crée un nouvel utilisateur ou met à jour les informations par défaut des nouveaux utilisateurs
SYNTAXE
useradd [options] LOGIN
useradd -D
useradd -D [options]
DESCRIPTION
useradd est un utilitaire de bas niveau pour ajouter des utilisateurs. Sur Debian, les administrateurs doivent généralement utiliser [adduser]({filename}../../adduser)(8) à la place.
Lorsqu'elle est invoquée sans l'option -D, la commande useradd crée un nouveau compte utilisateur en utilisant les valeurs spécifiées sur la ligne de commande ainsi que les valeurs par défaut du système. En fonction des options de la ligne de commande, la commande useradd mettra à jour les fichiers système et créera éventuellement le répertoire personnel du nouvel utilisateur et y copiera les fichiers initiaux.
Par défaut, un groupe sera également créé pour le nouvel utilisateur (voir -g, -N, -U et USERGROUPS_ENAB).
OPTIONS
Les options qui s'appliquent à la commande useradd sont les suivantes :
--badname
Autorise les noms qui ne respectent pas les normes.
-b, --base-dir BASE_DIR
Le répertoire de base par défaut du système si -d HOME_DIR n'est pas spécifié. BASE_DIR est concaténé avec le nom du compte pour définir le répertoire personnel.
Si cette option n'est pas spécifiée, useradd utilisera le répertoire de base spécifié par la variable HOME dans /etc/default/useradd, ou /home par défaut.
-c, --comment COMMENT
Une chaîne de texte quelconque. Il s'agit généralement d'une brève description du compte, et est actuellement utilisé comme champ pour le nom complet de l'utilisateur.
-d, --home-dir HOME_DIR
Le nouvel utilisateur sera créé en utilisant HOME_DIR comme valeur pour le répertoire de connexion de l'utilisateur. Par défaut, le nom LOGIN est ajouté à BASE_DIR et utilisé comme nom du répertoire de connexion. Le répertoire HOME_DIR n'est pas créé par défaut. Cependant, il sera créé pour les utilisateurs non système si l'option -m est spécifiée ou si CREATE_HOME dans login.defs est défini sur true. Cependant, il ne sera jamais créé si l'option -M est spécifiée.
-D, --defaults
Voir ci-dessous, la sous-section « Modification des valeurs par défaut ».
-e, --expiredate EXPIRE_DATE
Définit la date à laquelle le compte utilisateur sera désactivé. La valeur peut être spécifiée comme une date au format AAAA-MM-JJ ou comme un nombre de jours depuis 1970-01-01. La date est interprétée en utilisant le fuseau horaire UTC.
Si cela n'est pas spécifié, useradd utilise la date d'expiration par défaut spécifiée par la variable EXPIRE dans /etc/default/useradd, ou une chaîne vide (pas d'expiration) par défaut.
-f, --inactive INACTIVE
Définit le nombre de jours après que le mot de passe a dépassé sa durée de vie maximale avant que le compte utilisateur ne soit verrouillé. Si l'utilisateur ne modifie pas son mot de passe dans cette période, son compte devient inactif. Cette valeur est stockée dans le fichier mot de passe shadow. Pour plus d'informations, voir shadow(5).
Une valeur de 0 désactive le compte lorsque le mot de passe expire, sans délai.
Une valeur de -1 vide le champ correspondant dans le fichier mot de passe shadow, ce qui signifie que la période d’inactivité n’est pas appliquée.
Si cette option n’est pas spécifiée, useradd utilise la période d’inactivité par défaut spécifiée par la variable INACTIVE dans /etc/default/useradd, ou -1 par défaut si aucune valeur n’est spécifiée.
-F, --add-subids-for-system
Met à jour /etc/subuid et /etc/subgid même lors de la création d’un compte système avec l’option -r.
-g, --gid GROUPE
Le nom ou le numéro du groupe principal de l’utilisateur. Le nom du groupe doit exister. Un numéro de groupe doit faire référence à un groupe existant.
Si cette option n’est pas spécifiée, le comportement de useradd dépendra de la variable USERGROUPS_ENAB dans /etc/login.defs. Si cette variable est définie sur oui (ou si l’option -U/--user-group est spécifiée sur la ligne de commande), un groupe sera créé pour l’utilisateur, avec le même nom que le nom de connexion. Si la variable est définie sur non (ou si l’option -N/--no-user-group est spécifiée sur la ligne de commande), useradd définira le groupe principal du nouvel utilisateur sur la valeur spécifiée par la variable GROUP dans /etc/default/useradd, ou 100 par défaut.
-G, --groups GROUPE1[,GROUPE2,...[,GROUPE N]]
Une liste de groupes secondaires dont l’utilisateur est également membre. Chaque groupe est séparé du suivant par une virgule, sans espace intermédiaire. Les groupes sont soumis aux mêmes restrictions que le groupe spécifié avec l’option -g. Par défaut, l’utilisateur n’appartient qu’au groupe initial. En plus de passer l’option -G, vous pouvez ajouter l’option GROUPS au fichier /etc/default/useradd, ce qui ajoutera tous les utilisateurs à ces groupes secondaires.
-h, --help
Affiche le message d’aide et se termine.
-k, --skel SKEL_DIR
Le répertoire squelette, qui contient les fichiers et les répertoires à copier dans le répertoire personnel de l’utilisateur lorsque le répertoire personnel est créé par useradd.
Cette option n’est valide que si l’option -m (ou --create-home) est spécifiée.
Si cette option n’est pas définie, le répertoire squelette est défini par la variable SKEL dans /etc/default/useradd ou, par défaut, /etc/skel.
Les liens symboliques absolus qui pointent vers le répertoire skel verront le préfixe /etc/skel remplacé par le répertoire personnel de l’utilisateur.
Si possible, les ACL et les attributs étendus sont copiés.
-K, --key KEY=VALEUR
Remplace les valeurs par défaut de /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS et autres).
Exemple : -K PASS_MAX_DAYS=-1 peut être utilisé lors de la création d’un compte pour désactiver le vieillissement des mots de passe. Plusieurs options -K peuvent être spécifiées, par exemple : -K UID_MIN=100 -K UID_MAX=499
-l, --no-log-init
N’ajoute pas l’utilisateur aux bases de données lastlog et faillog.
Par défaut, les entrées de l’utilisateur dans les bases de données lastlog et faillog sont réinitialisées pour éviter de réutiliser l’entrée d’un utilisateur précédemment supprimé.
Si cette option n’est pas spécifiée, useradd consultera également la variable LOG_INIT dans /etc/default/useradd. Si celle-ci est définie sur non, l’utilisateur ne sera pas ajouté aux bases de données lastlog et faillog.
-m, --create-home
Crée le répertoire personnel de l'utilisateur s'il n'existe pas. Les fichiers et les répertoires contenus dans le répertoire squelette (qui peut être défini avec l'option -k) seront copiés dans le répertoire personnel.
Par défaut, si cette option n'est pas spécifiée et que CREATE_HOME n'est pas activé, aucun répertoire personnel n'est créé.
Le répertoire dans lequel le répertoire personnel de l'utilisateur est créé doit exister et avoir un contexte SELinux et des permissions appropriés. Sinon, le répertoire personnel de l'utilisateur ne peut pas être créé ou accessible.
-M, --no-create-home
Ne crée pas le répertoire personnel de l'utilisateur, même si le paramètre système dans /etc/login.defs (CREATE_HOME) est défini sur oui.
-N, --no-user-group
Ne crée pas de groupe portant le même nom que l'utilisateur, mais ajoute l'utilisateur au groupe spécifié par l'option -g ou par la variable GROUP dans /etc/default/useradd.
Le comportement par défaut (si les options -g, -N et -U ne sont pas spécifiées) est défini par la variable USERGROUPS_ENAB dans /etc/login.defs.
-o, --non-unique
permet la création d'un compte avec un UID déjà existant.
Cette option n'est valide qu'en combinaison avec l'option -u. Étant donné qu'une identité d'utilisateur sert de clé pour établir une correspondance entre les utilisateurs d'une part et les permissions, la propriété des fichiers et d'autres aspects qui déterminent le comportement du système d'autre part, plus d'un nom de connexion accédera au compte du UID donné.
-p, --password PASSWORD
définit un mot de passe initial pour le compte. PASSWORD doit être chiffré, comme le renvoie crypt (3). Dans un script shell, cette option permet de créer efficacement des lots d'utilisateurs.
Sans cette option, le nouveau compte sera verrouillé et n'aura pas de mot de passe défini, c'est-à-dire un simple point d'exclamation dans le champ correspondant de /etc/shadow. Il s'agit d'un état dans lequel l'utilisateur ne pourra pas accéder au compte ou définir lui-même un mot de passe.
Remarque : Évitez d'utiliser cette option en ligne de commande, car le mot de passe (ou le mot de passe chiffré) sera visible par les utilisateurs qui consultent les processus.
Vous devez vous assurer que le mot de passe respecte la politique de mot de passe du système.
-r, --system
Crée un compte système.
Les utilisateurs système seront créés sans informations de vieillissement dans /etc/shadow, et leurs identifiants numériques seront choisis dans la plage SYS_UID_MIN-SYS_UID_MAX, définie dans /etc/login.defs, au lieu de UID_MIN-UID_MAX (et leurs GID correspondants pour la création de groupes).
Notez que useradd ne créera pas de répertoire personnel pour un tel utilisateur, quel que soit le paramètre par défaut dans /etc/login.defs (CREATE_HOME). Vous devez spécifier l'option -m si vous souhaitez qu'un répertoire personnel soit créé pour un compte système.
Notez que cette option ne mettra pas à jour /etc/subuid et /etc/subgid. Vous devez spécifier l'option -F si vous souhaitez mettre à jour les fichiers pour qu'un compte système soit créé.
-R, --root CHROOT_DIR
Applique les modifications dans le répertoire CHROOT_DIR et utilise les fichiers de configuration du répertoire CHROOT_DIR. Seuls les chemins absolus sont pris en charge.
-P, --prefix PREFIX_DIR
Applique les modifications aux fichiers de configuration sous le système de fichiers racine trouvé dans le répertoire
PREFIX_DIR. Cette option n'effectue pas de chroot et est destinée à préparer une cible de compilation croisée. Certaines limitations : les utilisateurs/groupes NIS et LDAP ne sont pas vérifiés. L'authentification PAM utilise les fichiers de l'hôte. Aucune prise en charge de SELINUX.
-s, --shell SHELL
définit le chemin du shell de connexion de l'utilisateur. Sans cette option, le système utilisera la variable SHELL spécifiée dans /etc/default/useradd, ou, si celle-ci n'est pas définie, le champ du shell de connexion dans /etc/passwd restera vide.
-u, --uid UID
La valeur numérique de l'ID de l'utilisateur. Cette valeur doit être unique, sauf si l'option -o est utilisée. La valeur doit être non négative. Par défaut, la plus petite valeur d'ID supérieure ou égale à UID_MIN et supérieure à tous les autres utilisateurs est utilisée.
-U, --user-group
Crée un groupe avec le même nom que l'utilisateur et ajoute l'utilisateur à ce groupe.
Le comportement par défaut (si les options -g, -N et -U ne sont pas spécifiées) est défini par la variable USERGROUPS_ENAB dans /etc/login.defs.
-Z, --selinux-user SEUSER
définit l'utilisateur SELinux pour le nouveau compte. Sans cette option, SELinux utilise l'utilisateur par défaut. Notez que le système shadow ne stocke pas le selinux-user, il utilise semanage(8) pour cela.
--selinux-range SERANGE
définit la plage MLS SELinux pour le nouveau compte. Sans cette option, SELinux utilise la plage par défaut. Notez que le système shadow ne stocke pas le selinux-range, il utilise semanage(8) pour cela.
Cette option n'est valide que si l'option -Z (ou --selinux-user) est spécifiée.
Changer les valeurs par défaut
Lorsqu'il est invoqué uniquement avec l'option -D, useradd affichera les valeurs par défaut actuelles. Lorsqu'il est invoqué avec -D plus d'autres options, useradd mettra à jour les valeurs par défaut pour les options spécifiées. Les options de modification de la valeur par défaut valides sont :
-b, --base-dir BASE_DIR
définit le préfixe de chemin pour le répertoire personnel d'un nouvel utilisateur. Le nom de l'utilisateur sera ajouté à la fin de BASE_DIR pour former le nom du répertoire personnel du nouvel utilisateur, si l'option -d n'est pas utilisée lors de la création d'un nouveau compte.
Cette option définit la variable HOME dans /etc/default/useradd.
-e, --expiredate EXPIRE_DATE
définit la date à laquelle les nouveaux comptes d'utilisateurs sont désactivés.
Cette option définit la variable EXPIRE dans /etc/default/useradd.
-f, --inactive INACTIVE
spécifie le nombre de jours après l'expiration d'un mot de passe pendant lesquels l'utilisateur peut toujours se connecter. Après cette période, le compte est verrouillé.
Cette option définit la variable INACTIVE dans /etc/default/useradd.
-g, --gid GROUP
définit le groupe principal par défaut pour les nouveaux utilisateurs, en acceptant les noms de groupes ou un ID de groupe numérique. Le groupe nommé doit exister et le GID doit avoir une entrée existante.
Cette option définit la variable GROUP dans /etc/default/useradd.
-s, --shell SHELL
définit le shell de connexion par défaut pour les nouveaux utilisateurs.
Cette option définit la variable SHELL dans /etc/default/useradd.
NOTES
L’administrateur système est responsable du placement des fichiers utilisateur par défaut dans le répertoire /etc/skel/ (ou tout autre répertoire de modèle spécifié dans /etc/default/useradd ou sur la ligne de commande).
AVERTISSEMENTS
Vous ne pouvez pas ajouter un utilisateur à un groupe NIS ou LDAP. Cette opération doit être effectuée sur le serveur correspondant.
De même, si le nom d’utilisateur existe déjà dans une base de données d’utilisateurs externe telle que NIS ou LDAP, useradd refusera la demande de création de compte utilisateur.
Les noms d’utilisateur peuvent contenir uniquement des lettres minuscules et majuscules, des chiffres, des tirets bas ou des tirets. Ils peuvent se terminer par un signe dollar. Les tirets ne sont pas autorisés au début du nom d’utilisateur. Les noms d’utilisateur entièrement numériques et les noms d’utilisateur commençant par un point (.) ou deux points (..) sont également interdits. Il n’est pas recommandé d’utiliser des noms d’utilisateur commençant par le caractère « . », car leurs répertoires personnels seront masqués dans la sortie de la commande ls.
Les noms d’utilisateur peuvent comporter jusqu’à 256 caractères.
CONFIGURATION
Les variables de configuration suivantes dans /etc/login.defs modifient le comportement de cet outil :
CREATE_HOME (booléen)
Indique si un répertoire personnel doit être créé par défaut pour les nouveaux utilisateurs.
Ce paramètre ne s’applique pas aux utilisateurs système et peut être remplacé sur la ligne de commande.
GID_MAX (nombre), GID_MIN (nombre)
Plage d’ID de groupe utilisée pour la création de groupes réguliers par useradd, groupadd ou newusers.
La valeur par défaut de GID_MIN (respectivement GID_MAX) est 1000 (respectivement 60000).
HOME_MODE (nombre)
Le mode pour les nouveaux répertoires personnels. Si ce n’est pas spécifié, le UMASK est utilisé pour créer le mode.
useradd et newusers utilisent ce paramètre pour définir le mode du répertoire personnel qu’ils créent.
LASTLOG_UID_MAX (nombre)
ID utilisateur maximum pour lequel les entrées lastlog doivent être mises à jour. Étant donné que les ID utilisateur les plus élevés sont généralement suivis par des services d’identité et d’authentification utilisateur à distance, il n’est pas nécessaire de créer un fichier lastlog volumineux et fragmenté pour eux.
L’absence de l’option LASTLOG_UID_MAX dans la configuration signifie qu’il n’y a pas de limite d’ID utilisateur pour l’écriture des entrées lastlog.
MAIL_DIR (chaîne de caractères)
Le répertoire du spool de courrier. Ceci est nécessaire pour manipuler la boîte aux lettres lorsque le compte utilisateur correspondant est modifié ou supprimé. Si ce n’est pas spécifié, une valeur par défaut au moment de la compilation est utilisée. Le paramètre CREATE_MAIL_SPOOL dans /etc/default/useradd détermine si le spool de courrier doit être créé.
MAIL_FILE (chaîne de caractères)
Définit l’emplacement des fichiers de spool de courrier des utilisateurs par rapport à leur répertoire personnel.
Les variables MAIL_DIR et MAIL_FILE sont utilisées par useradd, usermod et userdel pour créer, déplacer ou supprimer le spool de courrier de l’utilisateur.
MAX_MEMBERS_PER_GROUP (nombre)
Nombre maximal de membres par entrée de groupe. Lorsque le nombre maximal est atteint, une nouvelle entrée de groupe (ligne) est démarrée dans /etc/group (avec le même nom, le même mot de passe et le même GID).
La valeur par défaut est 0, ce qui signifie qu’il n’y a pas de limite au nombre de membres dans un groupe.
Cette fonctionnalité (division de groupe) permet de limiter la longueur des lignes dans le fichier de groupe. Ceci est utile pour s’assurer que les lignes des groupes NIS ne dépassent pas 1 024 caractères.
Si vous devez appliquer une telle limite, vous pouvez utiliser 25.
Remarque : la division en groupes peut ne pas être prise en charge par tous les outils (même dans la suite d’outils Shadow).
Vous ne devez pas utiliser cette variable à moins que vous n’en ayez vraiment besoin.
PASS_MAX_DAYS (nombre)
Nombre maximal de jours pendant lesquels un mot de passe peut être utilisé. Si le mot de passe est plus ancien que cette valeur, une modification du mot de passe sera forcée. Si ce n’est pas spécifié, -1 sera supposé (ce qui désactive la restriction).
PASS_MIN_DAYS (nombre)
Nombre minimal de jours autorisés entre les modifications de mot de passe. Toute tentative de modification de mot de passe effectuée plus tôt que cette valeur sera rejetée. Si ce n’est pas spécifié, 0 sera supposé (ce qui désactive la restriction).
PASS_WARN_AGE (nombre)
Nombre de jours avant l’expiration du mot de passe pour lesquels un avertissement est donné. Une valeur de zéro signifie qu’un avertissement est donné uniquement le jour de l’expiration, une valeur de -1 signifie qu’aucun avertissement n’est donné. Si ce n’est pas spécifié, aucun avertissement ne sera fourni.
SUB_GID_MIN (nombre), SUB_GID_MAX (nombre), SUB_GID_COUNT (nombre)
Si /etc/subuid existe, les commandes useradd et newusers (à moins que l’utilisateur n’ait déjà des ID de groupe subordonnés) allouent SUB_GID_COUNT ID de groupe inutilisés dans la plage SUB_GID_MIN à SUB_GID_MAX pour chaque nouvel utilisateur.
Les valeurs par défaut pour SUB_GID_MIN, SUB_GID_MAX, SUB_GID_COUNT sont respectivement 100000, 600100000 et 65536.
SUB_UID_MIN (nombre), SUB_UID_MAX (nombre), SUB_UID_COUNT (nombre)
Si /etc/subuid existe, les commandes useradd et newusers (à moins que l’utilisateur n’ait déjà des ID d’utilisateur subordonnés) allouent SUB_UID_COUNT ID d’utilisateur inutilisés dans la plage SUB_UID_MIN à SUB_UID_MAX pour chaque nouvel utilisateur.
Les valeurs par défaut pour SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNT sont respectivement 100000, 600100000 et 65536.
SYS_GID_MAX (nombre), SYS_GID_MIN (nombre)
Plage d’ID de groupe utilisés pour la création de groupes système par useradd, groupadd ou newusers.
La valeur par défaut pour SYS_GID_MIN (respectivement SYS_GID_MAX) est 101 (respectivement GID_MIN-1).
SYS_UID_MAX (nombre), SYS_UID_MIN (nombre)
Plage d’ID d’utilisateur utilisés pour la création d’utilisateurs système par useradd ou newusers.
La valeur par défaut pour SYS_UID_MIN (respectivement SYS_UID_MAX) est 101 (respectivement UID_MIN-1).
UID_MAX (nombre), UID_MIN (nombre)
Plage d’ID d’utilisateur utilisés pour la création d’utilisateurs réguliers par useradd ou newusers.
La valeur par défaut pour UID_MIN (respectivement UID_MAX) est 1000 (respectivement 60000).
UMASK (nombre)
Le masque de création de mode de fichier est initialisé à cette valeur. Si ce n’est pas spécifié, le masque sera initialisé à 022.
useradd et newusers utilisent ce masque pour définir le mode du répertoire personnel qu’ils créent si HOME_MODE n’est pas défini.
Il est également utilisé par pam_umask comme valeur umask par défaut.
USERGROUPS_ENAB (booléen)
Si la valeur est définie sur oui, userdel supprimera le groupe de l’utilisateur s’il ne contient plus de membres, et useradd créera par défaut un groupe avec le nom de l’utilisateur.
FICHIERS
/etc/passwd
Informations sur le compte utilisateur.
/etc/shadow
Informations sécurisées sur le compte utilisateur.
/etc/group
Informations sur le compte de groupe.
/etc/gshadow
Informations sécurisées sur le compte de groupe.
/etc/default/useradd
Valeurs par défaut pour la création de compte.
/etc/shadow-maint/useradd-pre.d/*, /etc/shadow-maint/useradd-post.d/*
Fichiers de script à exécuter pendant l’ajout d’un utilisateur. La variable d’environnement ACTION sera remplie avec useradd et SUBJECT avec le nom d’utilisateur. useradd-pre.d sera exécuté avant tout ajout d’utilisateur. useradd-post.d sera exécuté après l’ajout de l’utilisateur. Si un script se termine avec un code différent de zéro, l’exécution sera interrompue.
/etc/skel/
Répertoire contenant les fichiers par défaut.
/etc/subgid
ID de groupe secondaires par utilisateur.
/etc/subuid
ID d’utilisateur secondaires par utilisateur.
/etc/login.defs
Configuration de la suite de mots de passe shadow.
VALEURS DE SORTIE
La commande useradd renvoie les valeurs de sortie suivantes :
0 succès
1 impossible de mettre à jour le fichier des mots de passe
2 syntaxe de commande invalide
3 argument invalide pour l’option
4 UID déjà utilisé (et pas d’option -o)
6 groupe spécifié inexistant
9 nom d’utilisateur ou de groupe déjà utilisé
10 impossible de mettre à jour le fichier de groupe
12 impossible de créer le répertoire personnel
14 impossible de mettre à jour le mappage utilisateur SELinux
19 nom d’utilisateur ou de groupe invalide
VOIR AUSSI
chfn(1), chsh(1), passwd(1), crypt(3), groupadd(8), groupdel(8), groupmod(8), login.defs(5), newusers(8), subgid(5), subuid(5), userdel(8), usermod(8).