Création User Linux : Guide Complet Commandes

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.

La réponse en 3 lignes
Ces trois commandes créent un compte utilisable et lui donnent les droits d’administration, sur n’importe quelle distribution :
sudo useradd -m -s /bin/bash -c "Alice Dupont" alice
sudo passwd alice
sudo usermod -aG sudo alice
1 — crée le compte et son répertoire personnel (-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.
Ce qu’il vous faut
  • Un accès administrateur : un compte membre du groupe sudo, ou root. Préférez sudo commande 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.

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)
Le piège que tout le monde rencontre
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)
Nuance importante
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.

Avant d’ajouter un groupe « pratique »
Certains groupes secondaires reviennent à donner les pleins pouvoirs. Le groupe qui pilote le démon Docker en est l’exemple type : la documentation de sécurité officielle du projet rappelle que ce démon exige les privilèges root (hors mode rootless) et que seuls des utilisateurs de confiance doivent pouvoir le contrôler — un conteneur peut monter la racine de l’hôte et en modifier les fichiers. Jamais « pour dépanner ».

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 no dans sshd_config. La valeur par défaut d’OpenSSH est prohibit-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 : last lit le fichier wtmp et retrace connexions et déconnexions ; lastlog affiche la dernière connexion de chaque compte depuis /var/log/lastlog.
  • Droits : ne « débloquez » jamais une situation par un chmod 777 ou un chown récursif large, et ne désactivez pas SELinux ou AppArmor pour faire passer une commande — corrigez la règle, pas le garde-fou.
La rotation tous les 90 jours n’est plus une bonne pratique
C’est le réflexe le plus répandu, et il est explicitement déconseillé par le référentiel du NIST consacré à l’authentification (SP 800-63B) : les vérificateurs ne devraient pas imposer un changement arbitraire — par exemple périodique — du secret mémorisé, mais doivent en forcer un dès qu’il existe un indice de compromission. Autrement dit : des secrets longs, une surveillance des compromissions, et 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 #

Le compte existe, la connexion échoue
Aucun mot de passe défini : le compte est verrouillé. sudo passwd <user>, puis contrôle par sudo passwd -S <user>.
Il se connecte mais n’a pas de home
useradd a été lancé sans -m. Corrigez avec sudo usermod -d /home/<user> -m <user>.
Il a perdu ses droits
Un usermod -G sans -a a remplacé la liste des groupes. Comparez avec id <user> et rajoutez-les un par un.
sudo ne marche toujours pas
L’appartenance à un groupe n’est lue qu’à l’ouverture de session : déconnexion, reconnexion, puis id pour confirmer.
À retenir
  • 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 : passwd le 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 ?
Parce qu’aucun mot de passe n’a été défini : le manuel indique qu’en son absence le compte est verrouillé, avec un point d’exclamation dans le champ correspondant de /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 ?
En l’ajoutant au groupe autorisé dans /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 ?
Le référentiel NIST SP 800-63B recommande de ne pas imposer de changement arbitraire ou périodique, tout en exigeant un changement immédiat dès qu’il existe un indice de compromission. Réservez chage -M et chage -E aux comptes temporaires.

À consulter aussi : source.

ALJ Création est édité de façon indépendante. Soutenez la rédaction en nous ajoutant dans vos favoris sur Google Actualités :

Dans la même rubrique : Web & Freelance

A lire aussi : agence web 123web · développeur React freelance