useradd : programme pour la création d'un compte utilisateur (de façon non-interactive)

Ubuntu, comme tous les autres systèmes d'exploitation de la famille GNU/Linux, est un système multi-utilisateurs.

useradd est un programme que l'on peut lancer grâce au terminal et qui permet de créer un compte d'utilisateur. La commande useradd doit être lancée par un administrateur, il faut donc utiliser sudo.

On peut créer des scripts exploitant useradd : le script adduser (le même nom, mais inversé) en est un exemple, sa particularité étant d'être en mode interactif : cela signifie que le script pose une série de questions, du type "Quel est le nom du compte utilisateur à créer ?".

useradd quant à lui fonctionne de manière non-interactive. Ceci permet de créer des comptes d'utilisateur à partir d'autres programmes, ou encore d'effectuer du traitement par lots (càd de la création automatisée des comptes utilisateurs).

La commande useradd, lancée par un administrateur, s'utilise comme ceci :

sudo useradd identifiant_utilisateur [options]

identifiant_utilisateur représente l'identifiant (le login) du nouveau compte d'utilisateur à créer. Les options sont facultatives et permettent de préciser des caractéristiques supplémentaires du nouveau compte d'utilisateur.

:!: Prenez note qu'un compte d'utilisateur sans mot de passe est inactif : aucun usager ne peut ouvrir de session avec ce compte tant qu'un mot de passe ne lui a pas été attribué. Pour ce faire, utilisez la commande passwd pour attribuer un mot de passe après la création du compte.

Options

Plusieurs options peuvent être fournies à useradd. Chacune d'elle est facultative. Ces options permettent de configurer certains aspects du nouveau compte d'utilisateur dès le moment de sa création. Voici les principales options intéressantes.

option utilité de l'option
--uid UID Attribue un identifiant numérique unique pour le nouveau compte.
Sans cette option, le prochain UID disponible est automatiquement choisi.
--home CHEMIN_ABSOLU_DU_DOSSIER Permet de choisir l'emplacement du dossier personnel du nouveau compte.
Sans cette option, le dossier personnel aura le chemin /home/identifiant_utilisateur/
--create-home Crée le dossier personnel de l'utilisateur. Les sous-dossiers par défaut tels que Documents, Bureau et Téléchargements seront quant à eux créés lorsque le nouvel utilisateur se connectera pour la première fois.
Sans cette option, le dossier personnel n'est pas créé.
--groups GROUPE1[,GROUPE2,GROUPE3...] Détermine les groupes auxquels le nouveau compte doit appartenir. Il faut écrire le groupe principal de l'utilisateur dans cette liste des groupes, car l'utilisateur n'y sera pas affecté automatiquement.
Si un ou plusieurs de ces groupes n'existe(nt) pas, l'exécution d'useradd sera annulée.
--gid GROUPE Sélectionne le groupe principal du nouveau compte (à l'aide du nom du groupe ou du GID). Il faudra également placer le nouvel utilisateur dans ce groupe, par exemple grâce à l'option --groups
Sans l'option --gid, un nouveau groupe portant le même nom que l'utilisateur sera créé, et ce groupe deviendra le groupe principal de l'utilisateur.
Si le groupe principal qui a été choisi n'existe pas, la commande useradd sera annulée.
--shell CHEMIN_ABSOLU_DU_SHELL Sélectionne le shell à utiliser pour exécuter les commandes du terminal. Le chemin du shell Bash est /bin/bash.
Sans cette option, le shell par défaut est /bin/sh qui est un shell minimaliste. On lui préfèrera donc généralement le Bash ou une autre alternative.

Consultez le manuel de useradd (en) ou le manuel de useradd (fr) pour lire davantage à propos de ces options et découvrir des options supplémentaires.

Rappel préalable : un compte créé avec useradd est inactif. Pour l'activer, il faut attribuer un password au compte.

Création simple de l'utilisatrice nommée "jane"

Avec toutes les options par défaut.

sudo useradd jane

sudo passwd jane
  • Nom d'utilisatrice: jane
  • ID de l'utilisatrice (UID) : automatiquement choisi par le système d'exploitation
  • Dossier personnel de l'utilisatrice : /home/jane/
  • Ce dossier personnel n'est pas créé par useradd, il faudra le créer par la suite (par exemple avec la commande mkdir /home/jane/)
  • L'utilisatrice est ajoutée au groupe suivant : jane (par défaut, Linux crée un groupe portant le même nom que le nouvel utilisateur)
  • Groupe principal de l'utilisatrice : jane
  • Chemin du shell pour les commandes du terminal : /bin/sh

Pour terminer, on fait l'activation du compte en lui attribuant un mot de passe grâce à la commande passwd.

Création avancée de l'utilisateur nommé "tarzan"

En exploitant toutes les options définies plus haut.

sudo useradd tarzan --uid 1010 --home /home/acteur/ --create-home --groups jungle,animaux --gid jungle --shell /bin/bash

sudo passwd tarzan

Explication des options choisies :

  • Nom d'utilisateur : tarzan
  • ID de l'utilisateur (UID) : 1010
  • Dossier personnel de l'utilisateur : /home/acteur/
  • Ce dossier personnel est créé par useradd
  • L'utilisateur est ajouté aux deux groupes suivants : jungle et animaux
  • Groupe principal de l'utilisateur : jungle
  • Chemin du shell pour les commandes du terminal : /bin/bash

Pour terminer, on fait l'activation du compte en lui attribuant un mot de passe grâce à la commande passwd.

Activation du compte : choix d'un mot de passe pour l'utilisateur nommé "tarzan"

L'attribution d'un mot de passe peut se faire grâce à la commande passwd. Remarque : pendant que vous tapez le mot de passe, rien ne s'affiche à l'écran. Cela est normal.

sudo passwd tarzan
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès ...

Création d'un compte avec mot de passe

L'utilisation combinée d'useradd et mkpasswd permet de créer un compte et de lui attribuer en même temps un mot de passe. Elle autorise le mot de passe à s'affranchir du contrôle de complexité du mot de passe.

Avec cette méthode le mot de passe choisi peut être moins sûr que celui que passwd vous autorise. à vos risques et périls !
Pour utiliser mkpassw, il est généralement nécessaire d'installer le paquet whois
sudo apt install whois

Création du compte Mowgli dont le mot de passe est Sonnette1893

sudo useradd -m Mowgli -p $(mkpasswd Sonnette1893)
Pourquoi utiliser mkpasswd à l'intérieur de la commande useradd plutôt que de copier la sortie de la commande mkpasswd ? Tout simplement car le chiffrement du mot de passe utilise souvent le caractère $, ce qui fait que le shell interprète ce qui suit comme un nom de variable. Cet écueil est évité de cette façon. On peut évidemment faire autrement, comme bien souvent chez linux.

En plus des fichiers impactés par défaut, il peut être intéressant de consulter certains autres fichiers liés à useradd. Parmi ceux-ci :

  • /etc/default/useradd
  • /etc/login.defs (man login.defs pour plus d'informations)
  • /etc/pam.d
  • useradd.txt
  • Dernière modification: Le 25/07/2024, 00:47
  • par 193.32.126.218