Commande useradd

Dans le monde des systèmes Unix et Linux, la gestion des utilisateurs est une tâche essentielle. Chaque utilisateur doit être configuré avec un identifiant unique, des permissions spécifiques et un accès aux ressources du système. L’outil de base pour accomplir cela est la commande useradd. Elle permet non seulement de créer des comptes utilisateurs, mais aussi de définir des paramètres précis comme le répertoire personnel, la shell par défaut, et bien plus.
L’utilisation de useradd est une compétence incontournable pour les administrateurs systèmes, et c’est aussi une bonne porte d’entrée pour les étudiants ou débutants qui veulent apprendre à gérer les utilisateurs sur un système Linux. Ce tutoriel vous guidera à travers les fonctionnalités de base et avancées de cette commande, en mettant l’accent sur les options couramment utilisées et les meilleures pratiques. Nous verrons également comment cette commande s’intègre dans les environnements de travail réels.
Il est important de noter que useradd diffère de la commande adduser, qui est souvent utilisée sur des systèmes comme Debian et ses dérivés. Alors que useradd est un programme bas niveau qui offre un contrôle précis mais nécessite la spécification de plusieurs options, adduser est un script Perl de plus haut niveau. Ce dernier est plus convivial et interactif, car il guide l’utilisateur à travers les différentes étapes de la création d’un compte, comme le choix du répertoire personnel ou du mot de passe. Cependant, adduser utilise en interne useradd, ce qui signifie qu’ils accomplissent finalement les mêmes tâches, mais avec une approche différente.

Syntaxe de base

La commande useradd est disponible dans tous les systèmes d’exploitation Linux et peut être utilisée pour créer ou modifier des utilisateurs sur votre système. Voici la syntaxe de base :

useradd [options] nom_utilisateur

Les options permettent de personnaliser la création du nouvel utilisateur. Voici quelques-unes des options les plus utiles.

Options couramment utilisées:
-b : Spécifie le répertoire de base dans lequel sera créé le répertoire personnel de l’utilisateur. Par défaut, c’est /home.
-c : Ajoute un commentaire à propos de l’utilisateur (souvent utilisé pour inclure des informations comme le nom complet de l’utilisateur).
-d : Définit le répertoire personnel de l’utilisateur.
-e : Spécifie la date d’expiration du compte (format AAAA-MM-JJ).
-g : Assigne un groupe principal à l’utilisateur.
-G : Assigne l’utilisateur à des groupes supplémentaires.
-m : Crée un répertoire personnel pour l’utilisateur s’il n’existe pas encore.
-p : Définit un mot de passe pour l’utilisateur (le mot de passe doit être encodé en hash).
-s : Spécifie la shell par défaut pour l’utilisateur (ex : /bin/bash).

 

Création d’un utilisateur simple

Voici comment créer un utilisateur de base avec la commande useradd :

sudo useradd nom_utilisateur

Dans mon cas:

sudo useradd oleks

Cela crée un utilisateur sans répertoire personnel, sans shell spécifique, ni groupe particulier. Pour la plupart des systèmes, un utilisateur a besoin d’un répertoire personnel et d’une shell pour travailler correctement.

 

Exemple pratique : créer un utilisateur avec une configuration minimale

Pour créer un utilisateur avec un répertoire personnel et une shell /bin/bash, vous pouvez utiliser les options suivantes :

sudo useradd -m -s /bin/bash nouvel_utilisateur

Dans mon cas:

sudo useradd -m -s /bin/bash oleks

Cette commande crée un utilisateur avec un répertoire personnel dans /home/nouvel_utilisateur et configure /bin/bash comme shell par défaut.

 

Ajouter un utilisateur avec des groupes supplémentaires

Il est souvent nécessaire de donner à un utilisateur l’accès à des ressources spécifiques en l’ajoutant à plusieurs groupes. Voici un exemple où nous ajoutons un utilisateur aux groupes adm, cdrom, et sudo :

sudo useradd -G adm,cdrom,sudo -m -s /bin/bash utilisateur_avancé

Dans mon cas:

sudo useradd -G adm,sudo -m -s /bin/bash oleks

 

Configurer une date d’expiration pour un compte temporaire

Dans certains cas, vous devrez peut-être créer des comptes temporaires qui se désactivent automatiquement après une certaine date. Vous pouvez utiliser l’option -e pour spécifier une date d’expiration :

sudo useradd -e 2024-12-31 -G sudo -m -s /bin/bash temp_user

Dans mon cas:

sudo useradd -e 2024-12-31 -G sudo -m -s /bin/bash oleks

Ici, l’utilisateur oleks sera désactivé après le 31 décembre 2024.

Créer un utilisateur avec des droits root

Dans certains scénarios spécifiques, vous pourriez vouloir créer un utilisateur avec des droits root. Cela peut être fait en utilisant l’option -u 0 et en assignant l’utilisateur à l’UID (User ID) 0, qui correspond à l’utilisateur root sur les systèmes Unix/Linux :

sudo useradd -o -u 0 -g 0 -s /bin/bash superutilisateur

Dans mon cas:

sudo useradd -o -u 0 -g 0 -s /bin/bash oleks

-o : Permet de créer un utilisateur avec un UID (User ID) déjà utilisé. En général, l’UID doit être unique pour chaque utilisateur, mais l’option -o force cette règle à être ignorée.
-u 0 : Attribue l’UID 0 à l’utilisateur. L’UID 0 est réservé à l’utilisateur root, ce qui signifie que l’utilisateur oleks aura les mêmes privilèges que root.
-g 0 : Attribue le GID (Group ID) 0, qui correspond au groupe root, donc oleks appartiendra également au groupe root.
-s /bin/bash : Définit /bin/bash comme le shell de l’utilisateur.

Cela crée un utilisateur avec les mêmes droits que root.

Attention : cette commande doit être utilisée avec précaution, car elle peut avoir des conséquences majeures sur la sécurité du système.

La commande useradd est un outil puissant qui permet de gérer les utilisateurs sur un système Linux de manière flexible et efficace. Que vous gériez des utilisateurs temporaires, des comptes pour les développeurs ou même des super-utilisateurs avec des droits root, useradd vous donne le contrôle total sur la manière dont les utilisateurs interagissent avec le système.

Bonne chance!