La création d’un utilisateur sous Linux reste en 2026 une opération fondamentale pour tout administrateur système. Voici un guide complet des commandes, paramètres et bonnes pratiques — chaque option vérifiée sur les pages de manuel officielles, avec la distribution concernée précisée à chaque exemple.
sudo useradd -m -s /bin/bash -c "Alice Dupont" alice
sudo passwd alice
sudo usermod -aG sudo alice
-m). 2 — demande le mot de passe de façon interactive : jamais en argument de commande. 3 — ajoute au groupe d’administration sans écraser les autres groupes (-a). Sur Debian et Ubuntu, sudo adduser alice fait l’équivalent des deux premières en mode dialogue.- Un accès administrateur : un compte membre du groupe sudo, ou root. Préférez
sudocommande par commande à une session root permanente. - shadow-utils, présent partout :
useradd,usermod,userdel,groupadd,passwd,chage. - Le nom du groupe d’administration de VOTRE machine (voir plus bas) et deux minutes. Niveau débutant.
Plan de l'article
- Concepts clés de la gestion utilisateurs Linux
- Fichiers système impliqués
- Commande useradd
- Commande adduser
- Définir le mot de passe
- Ajouter aux groupes
- Exemple : créer un compte admin
- Tableau des paramètres useradd
- Supprimer un utilisateur
- Modifier un utilisateur existant
- Sécurité et bonnes pratiques 2026
- Automatisation avec Ansible
- Conclusion
- Erreurs fréquentes et dépannage
- Questions fréquentes
Concepts clés de la gestion utilisateurs Linux #
Avant de créer un utilisateur, comprenez les éléments qui le constituent. Un compte n’est pas un objet unique : c’est une ligne dans deux fichiers, un identifiant numérique, un groupe, un répertoire et un interpréteur de commandes.
- UID : identifiant numérique unique (User ID)
- GID : groupe principal de l’utilisateur
- Home : répertoire personnel (/home/user)
- Shell : interpréteur par défaut (bash, zsh, fish)
- Mot de passe : stocké haché dans /etc/shadow
Retenez la distinction entre groupe principal (un seul, propriétaire des fichiers que vous créez) et groupes secondaires (autant que nécessaire, ce sont eux qui ouvrent des droits). Elle explique à elle seule l’option -a vue plus loin.
À lire User Creation Linux : Guide 2026 – Tutoriel
Fichiers système impliqués #
Plusieurs fichiers du répertoire /etc centralisent les informations utilisateurs.
- /etc/passwd : liste des users et attributs publics
- /etc/shadow : mots de passe hachés, permissions restrictives
- /etc/group : définition des groupes
- /etc/gshadow : mots de passe de groupe
- /etc/login.defs : politique par défaut
- /etc/skel : modèle du répertoire home
Deux précisions utiles en dépannage. /etc/passwd est lisible par tous — c’est normal, beaucoup d’utilitaires s’en servent pour traduire un UID en nom — et son champ mot de passe ne contient qu’un x, le haché vivant ailleurs. /etc/shadow, lui, ne doit pas être lisible par un utilisateur ordinaire ; chacune de ses lignes compte neuf champs séparés par des deux-points, et un champ mot de passe commençant par un point d’exclamation signale un mot de passe verrouillé.
Commande useradd #
useradd est la commande bas niveau standard pour créer un utilisateur.
sudo useradd -m -s /bin/bash -G sudo alice
- -m : crée le répertoire home
- -s : shell par défaut
- -G : groupes secondaires
- -u : UID spécifique
- -c : commentaire (nom complet)
useradd seul ne crée ni répertoire personnel, ni mot de passe. Sans -m et si CREATE_HOME n’est pas activé dans /etc/login.defs, aucun home n’est créé. Et sans mot de passe défini, le manuel est explicite : le compte est verrouillé, avec un simple point d’exclamation dans le champ correspondant de /etc/shadow — un état où l’utilisateur ne peut ni accéder au compte ni définir lui-même son mot de passe. Le fameux « le compte existe mais il ne peut pas se connecter » vient presque toujours de là.Deux autres options à connaître : -k (squelette alternatif) n’est valide qu’avec -m, et -p, qui accepte un mot de passe déjà chiffré, porte dans le manuel un avertissement explicite — à éviter sur la ligne de commande, où la valeur devient visible par les autres utilisateurs. Règle générale : un mot de passe ne se tape jamais en argument, il finit dans l’historique du shell et dans la liste des processus.
À lire Convertir un fichier MOV en AVI : Guide complet pour changer de format vidéo facilement
Commande adduser #
adduser est un wrapper interactif plus convivial sur Debian/Ubuntu.
sudo adduser alice
- Interactif : demande nom, mot de passe
- Crée home : automatiquement
- Configure shell : bash par défaut
- Copie /etc/skel : vers le nouveau home
La différence avec useradd n’est pas cosmétique, et c’est le point que la plupart des tutoriels escamotent. Le manuel Debian le dit sans ambiguïté : adduser et addgroup sont des interfaces spécifiques à Debian posées au-dessus de useradd, groupadd et usermod, ces derniers étant indépendants de la distribution. adduser est donc une couche de politique : UID et GID conformes aux conventions Debian, home créé avec sa configuration de départ. La documentation serveur d’Ubuntu confirme l’usage recommandé du paquet adduser sur les distributions dérivées de Debian. Conséquence pratique : un script écrit avec adduser n’est pas portable. Avant de copier une commande trouvée en ligne, vérifiez ce que votre machine appelle « adduser » :
command -v adduser && readlink -f "$(command -v adduser)"
Si le chemin renvoyé est celui de useradd, vous n’avez pas le script interactif Debian : les options longues du type --disabled-password ou --ingroup n’existent pas, et c’est la syntaxe de useradd qui s’applique.
Définir le mot de passe #
Après création, il faut initialiser le mot de passe. La commande le demande de façon interactive : c’est voulu, et c’est la seule forme à utiliser.
À lire Media Creation Tool : Guide installation 2026
sudo passwd alice
- passwd user : définit le mot de passe
- passwd -e user : force changement à la prochaine connexion
- passwd -l user : verrouille le mot de passe
- passwd -u user : déverrouille
- passwd -S user : état du compte (P = mot de passe utilisable, L = verrouillé, NP = aucun)
passwd -l verrouille le mot de passe, pas le compte. Le manuel est formel : l’utilisateur peut encore se connecter par un autre moyen d’authentification, typiquement une clé SSH. Pour désactiver réellement un compte, la page renvoie vers usermod --expiredate 1, qui fixe la date d’expiration au 2 janvier 1970.Ajouter aux groupes #
La gestion des groupes conditionne les droits d’accès.
- groups user : liste les groupes
- usermod -aG sudo user : ajoute au groupe sudo (crucial : option -a)
- gpasswd -a user group : ajoute à un groupe
- gpasswd -d user group : retire d’un groupe
- newgrp group : change temporairement de groupe principal
L’option -a (--append) ne s’emploie qu’avec -G, et son oubli est la faute la plus coûteuse du lot : usermod -G docker alice ne complète pas la liste, il la remplace — l’utilisateur perd d’un coup tous ses autres groupes secondaires. Relevez toujours l’état avant et après avec id alice.
Le nom du groupe d’administration dépend de la distribution : la documentation serveur d’Ubuntu indique que l’utilisateur créé par l’installeur est membre du groupe sudo, déclaré dans /etc/sudoers, et qu’il faut ajouter à ce groupe tout compte à qui l’on veut donner un accès root via sudo. Ailleurs, le nom peut différer : vérifiez sur la machine concernée plutôt que de supposer.
getent group sudo wheel
sudo grep -rhE '^%' /etc/sudoers /etc/sudoers.d/ 2>/dev/null
Un changement de groupe ne prend effet que dans une nouvelle session : faites reconnecter l’utilisateur, sans quoi vous croirez l’opération ratée.
À lire Lancez Votre Boutique en Ligne : Stratégies et Étapes Essentielles
Exemple : créer un compte admin #
Scénario classique de provisioning d’un nouvel admin système, ici sur Debian ou Ubuntu (groupe sudo) :
sudo useradd -m -s /bin/bash -G sudo,adm -c "Alice Dupont" alice
sudo passwd alice
sudo passwd -e alice
Les trois commandes créent le user, définissent un mot de passe temporaire saisi de façon interactive, et forcent son changement au premier login. Adaptez le nom du groupe d’administration si votre distribution en utilise un autre.
Tableau des paramètres useradd #
| Option | Fonction |
|---|---|
| -m | crée le répertoire home |
| -M | ne crée pas le home, même si CREATE_HOME vaut yes |
| -d | chemin home personnalisé |
| -s | shell (ex: /bin/zsh) |
| -u | UID explicite |
| -g | groupe principal |
| -G | groupes secondaires |
| -N | ne crée pas le groupe éponyme de l’utilisateur |
| -e | date d’expiration (AAAA-MM-JJ, interprétée en UTC) |
| -f | jours de tolérance après expiration du mot de passe avant verrouillage |
| -c | commentaire (GECOS) |
| -k | skel alternatif (valide uniquement avec -m) |
| -r | compte système (UID dans la plage SYS_UID_MIN–SYS_UID_MAX) |
| -D | affiche ou modifie les valeurs par défaut de useradd |
Supprimer un utilisateur #
Deux commandes permettent de supprimer proprement un compte — l’une universelle, l’autre propre à Debian et Ubuntu.
- userdel user : supprime l’utilisateur, garde le home
- userdel -r user : supprime aussi le home et le spool de messagerie
- deluser user : équivalent Debian/Ubuntu
- deluser –remove-home user : supprime le répertoire personnel
- deluser –remove-all-files user : supprime tous les fichiers du compte
- deluser –backup user : archive les fichiers avant suppression
Attention à la graphie : ce sont bien deux tirets devant --remove-home, un tiret cadratin copié depuis un article mal encodé fait échouer la commande. Et userdel -r ignore les fichiers du compte situés hors du home : le manuel précise qu’ils doivent être retrouvés à la main, ce qu’un sudo find / -xdev -uid <UID> -ls préalable permet de faire.
À lire Date de création (created_at) : guide complet développeurs
Modifier un utilisateur existant #
usermod permet d’ajuster les attributs a posteriori.
- usermod -l newname oldname : renommer
- usermod -d /new/home user : changer home
- usermod -d /new/home -m user : changer home et déplacer son contenu
- usermod -s /bin/zsh user : changer shell
- usermod -L user / -U user : verrouiller / déverrouiller
- chage -l user : afficher politique d’expiration
Trois précautions issues du manuel. -d seul ne déplace rien : sans -m, l’utilisateur pointe vers un répertoire vide. -l ne change que le nom de connexion — home et spool de messagerie sont à renommer manuellement. Enfin l’utilisateur ne doit exécuter aucun processus pendant la modification de son UID, de son nom ou de son home ; ses tâches cron sont également à reprendre à la main. Côté durées, chage -M fixe la validité maximale du mot de passe, chage -E la date au-delà de laquelle le compte devient inaccessible, et chage -d 0 user force un changement dès la prochaine connexion.
Sécurité et bonnes pratiques 2026 #
Quelques règles à appliquer en environnement pro, toutes vérifiables dans la documentation des outils concernés.
- Pas de root direct :
PermitRootLogin nodanssshd_config. La valeur par défaut d’OpenSSH estprohibit-password, qui interdit le mot de passe pour root mais autorise encore la clé : pour fermer complètement, il faut l’écrire explicitement. - SSH key : déposez les clés publiques dans
~/.ssh/authorized_keys, l’emplacement recherché par défaut. - Sudo plutôt que root : une session root permanente supprime toute traçabilité. Le sudo sans mot de passe reste réservé aux comptes de service, sur des commandes précises.
- Second facteur : un module PAM dédié ajoute un code à usage unique (TOTP/HOTP) à la connexion SSH ; le module Google Authenticator en est l’implémentation libre de référence. Une clé matérielle joue le même rôle.
- Audit :
lastlit le fichierwtmpet retrace connexions et déconnexions ;lastlogaffiche la dernière connexion de chaque compte depuis/var/log/lastlog. - Droits : ne « débloquez » jamais une situation par un
chmod 777ou unchownrécursif large, et ne désactivez pas SELinux ou AppArmor pour faire passer une commande — corrigez la règle, pas le garde-fou.
chage réservé aux comptes réellement temporaires.Automatisation avec Ansible #
Sur une flotte de serveurs, la création manuelle ne tient pas : le module ansible.builtin.user décrit l’état voulu et le rend idempotent.
- name: Create user alice
ansible.builtin.user:
name: alice
shell: /bin/bash
groups: sudo
append: yes
create_home: yes
append reproduit le rôle du -a de usermod : à false, l’utilisateur est retiré de tous les groupes non listés. create_home vaut yes par défaut (le paramètre s’appelait createhome avant Ansible 2.5). Et le paramètre password attend, sous Linux, un haché : la valeur est écrite telle quelle dans /etc/shadow, sans validation. Un secret de playbook se range dans un coffre chiffré, jamais dans le dépôt.
Conclusion #
La création d’utilisateurs Linux en 2026 reste simple avec useradd ou adduser, à condition de savoir lequel des deux on utilise et sur quelle distribution. La sécurité moderne impose d’ajouter les clés SSH, un second facteur et une politique d’expiration raisonnée plutôt qu’automatique. Automatisez avec Ansible ou tout autre gestionnaire de configuration pour une gestion cohérente de flotte. Et n’oubliez jamais : un compte inutilisé est une faille en puissance, auditez régulièrement /etc/passwd.
Erreurs fréquentes et dépannage #
sudo passwd <user>, puis contrôle par sudo passwd -S <user>.useradd a été lancé sans -m. Corrigez avec sudo usermod -d /home/<user> -m <user>.usermod -G sans -a a remplacé la liste des groupes. Comparez avec id <user> et rajoutez-les un par un.id pour confirmer.- useradd n’est pas adduser : le premier est commun à toutes les distributions, le second est une surcouche Debian/Ubuntu. Un script portable s’écrit avec useradd.
- Sans -m et sans mot de passe, un compte créé par useradd n’a ni répertoire personnel ni possibilité de connexion.
- Jamais de mot de passe en argument :
passwdle demande de façon interactive, seule forme sûre. - Le -a de usermod -aG n’est pas facultatif : sans lui, la liste des groupes est remplacée, pas complétée.
- passwd -l ne désactive pas le compte : une clé SSH passe encore. Utilisez la date d’expiration pour fermer l’accès.
Questions fréquentes #
Quelle est la différence entre useradd et adduser ?
useradd est l’outil bas niveau de shadow-utils, présent sur toutes les distributions et non interactif. adduser est, selon son propre manuel, une interface spécifique à Debian posée au-dessus de useradd, groupadd et usermod : il dialogue avec vous, crée le home, applique les conventions d’UID de la distribution. Sur une machine hors famille Debian, ne présumez ni de sa présence ni de son comportement.Pourquoi mon utilisateur créé avec useradd ne peut-il pas se connecter ?
/etc/shadow. Lancez sudo passwd <user>, et vérifiez au passage que le home existe — sans -m, il n’a pas été créé.Comment donner les droits d’administration à un utilisateur ?
/etc/sudoers : sudo usermod -aG <groupe> <user>. Sur Ubuntu, la documentation officielle désigne le groupe sudo. Le nom variant d’une distribution à l’autre, contrôlez-le avec getent group sudo wheel, puis faites rouvrir une session.Comment supprimer un utilisateur et son répertoire personnel ?
sudo userdel -r <user> partout, ou sudo deluser --remove-home <user> sur Debian et Ubuntu (deux tirets). Les fichiers du compte situés hors du home ne sont pas concernés : retrouvez-les par leur UID avant de supprimer le compte.Faut-il forcer le changement de mot de passe tous les 90 jours ?
chage -M et chage -E aux comptes temporaires.- Pages de manuel Linux : useradd(8), usermod(8), userdel(8), passwd(1), chage(1), shadow(5).
- Manuel Debian : adduser(8), deluser(8).
- Ubuntu Server — User management · sshd_config(5) · Docker — Security · NIST SP 800-63B.
À consulter aussi : source.




