Menu Fermer

Gérer les utilisateurs/groupes sur Linux en ligne de commandes (adduser, addgroup, usermod, passwd, …)

Linux regorge de commandes depuis le terminal, il en va de même pour gérer les utilisateurs et groupes : adduser, addgroup, usermod, passwd, etc).
Vous pouvez donc ajouter ou supprimer un nouvel utilisateur et groupe facilement en ligne de commandes.

Ce tutoriel vous explique comment ajouter un utilisateur/groupe sur Linux en ligne de commandes.

Comment gérer les utilisateurs utilisateur/groupe sur Linux en ligne de commandes
Comment gérer les utilisateurs utilisateur/groupe sur Linux en ligne de commandes

Le fonctionnement des utilisateurs dans Linux

Comme tout OS, Linux permet de créer des utilisateurs pour se connecter ou des utilisateurs systèmes.
Le fonctionnement est relativement simple et documenté dans cet article :

Linux stocke les données des utilisateurs dans plusieurs fichiers de configuration dans le dossier /etc.
On y trouve :

  • /etc/passwd : stocke la liste des utilisateurs, avec leur UID, dossier home
  • /etc/group : stocke la liste des groupes
  • /etc/shadow : stocke les mots de passe
  • /etc/gshadow contient les mots de passe des groupes utilisateurs Linux

Les commandes pour gérer les utilisateurs Linux

Voici les commandes les plus utiles pour gérer les utilisateurs linux :

  • adduser ou useradd : pour ajouter un utilisateur linux
  • userdel ou deluser : supprimer un utilisateur linux
  • usermod : La commande usermod modifie les fichiers d’administration des comptes du système selon les modifications qui ont été indiquées sur la ligne de commande
  • groupmod : pour modifier la configuration d’un groupe utilisateur
  • passwd : changer le mot de passe d’un utilisateur Linux
Notez que selon la distribution Linux, il peut y avoir des subtilités sur les paramètres ou commandes.

adduser : ajouter un utilisateur Linux

La commande adduser peut s’utiliser de manière très simple.
Dans ce cas, les paramètres vont être pris par défaut par exemple le dossier home sera /home/toto :

adduser toto

Ici l’identifiant sera 1002, c’est le suivant libr qui est pris.
Il ne reste plus qu’à saisir le mot de passe de l’utilisateur.
A partir de là, ce dernier est ajouté dans la configuration utilisateur /etc/passwd.

adduser pour ajouter un nouvel utilisateur linux

Mais on peut aller plus loin en utilisant divers paramètres afin de pouvoir créer l’utilisateur comme on le souhaite.
Par exemple ici on fixe le shell, l’uid et le répertoire du home de l’utilisateur

adduser toto --shell /bin/bash  --home /home/supertoto --uid 2000 --disabled-password

L’option –disabled-password permet d’interdire l’identification par mot de passe, cela peut-être intéressant pour un utilisateur SSH afin de forcer l’authentification par clé RSA.

La commande ID permet d’afficher les informations d’un utilisateur (UID, home, shell, …)

La commande ID permet d'afficher les informations d'un utilisateur (UID, home, shell, etc)

Ajouter un utilisateur Linux dans un groupe

Enfin adduser vous permet d’ajouter un utilisateur Linux dans un groupe utilisateur.
La syntaxe est la suivante :

adduser NomUtilisateur NomGroupe

Mais on peut aussi utiliser usermod pour ajouter un utilisateur dans un ou plusieurs groupes.
Cela donne :

usermod -a -G groupe1,groupe2 NomUtilisateur
usermod -a -G sys,adm toto

deluser : supprimer un utilisateur Linux

Cette commande permet de supprimer un utilisateur.
Rien d’extraordinaire là dans son utilisation :

deluser nomUtilisateur
deluser pour ajouter un nouvel utilisateur linux

Cela ne supprime pas son home, ainsi il faudra le faire manuellement.
Par exemple :

sudo rm -R /home/utilisateur

addgroup : ajouter un utilisateur à un groupe

Le commande addgroup permet de créer un groupe.
Ce dernier va donc être ajouté aux fichiers /etc/group

La syntaxe est la suivante pour créer un groupe utilisateur.
Si vous ne spécifié pas l’ID, Linux prendra le numéro libre suivant.

addgroup [--gid ID] NomDuGroupe

Enfin pour créer un groupe système :

addgroup --system [--gid ID] NomDuGroupe

usermod : modifier la configuration utilisateur

usermod permet donc de modifier la configuration d’un utilisateur.
Plus haut on a vu qu’il pouvait modifier l’appartenance à un group utilisateur.
Mais il permet aussi de modifier le nom d’un utilisateur ou UID.

Ajouter des informations à un utilisateur Linux :

usermod -c "C'est un super utilisateur" nomUtilisateur

Pour changer l’identifiant d’un utilisateur :

usermod --login nouvelIdentifiant
usermod -l nouvelIdentifiant #autre syntaxe

On peut aussi déplacer le contenu du home :

usermod --login nouvelIdentifiant --home /nouveauHome--move-home ancienIdentifiant
usermod -d /nouveauHome -m /home #autre syntaxe

Modifier l’UID d’un utilisateur Linux :

usermod -u 888 nomUtilisateur

Changer le shell d’un utilisateur :

usermod -s /bin/shell nomUtilisateur

Enfin usermod permet de jouer sur les dates d’expirations du mot de passe.
Par exemple pour verrouiller un compte utilisateur :

usermod --expiredate 1 nomUtilisateur
usermod -e YYY-MMM-DD nomUtilisateur #avec une date
usermod -L -e 1 nomUtilisateur #autre syntaxe

Pour le réactiver :

usermod --expiredate "" nomUtilisateur
usermod -U nomUtilisateur #autre syntaxe

groupmod : modifier la configuration d’un groupe utilisateur

groupmod permet de modifier la configuration d’un groupe utilisateur.
Par exemple pour changer le nom d’un groupe :

groupmod -n new-name nouveauNomGroupe nomGroupeActuel

Ou encore modifier le GID d’un groupe :

groupmod -g nouveauID nomGroupe

passwd : changer/supprimer le mot de passe d’un utilisateur

Enfin la commande passwd permet de changer le mot de passe d’un utilisateur linux.
Le nouveau mot de passe sera demandé en confirmation.

La commande passwd pour changer un mot de passe

Mais la commande passwd va plus loin.
Par exemple pour supprimer un mot de passe d’un stérilisateur :

passwd -l nomUtilisateur

Enfin pour remettre en place le mot de passe :

passwd -u nomUtilisateur

Mais aussi verrouiller un utilisateur :

passwd -l nomUtilisateur

Mettre une date d’expiration de l’utilisateur qui sera verrouillé ensuite :

passwd -e  YYYY-MM-DD nomUtilisateur

On peut aussi l’utiliser pour réinitialiser le mot de passe root.
Les articles suivants vous guident en cela :

ID, chage : afficher les informations d’un utilisateur Linux

La commande chage permet d’afficher les dates d’expirations d’un utilisateur Linux.
Alors que la commande ID affichage le shell, Home, UID, etc.

Afficher les informations d'un utilisateur Linux en ligne de commandes

Le fichier /etc/adduser.conf

Le fichier /etc/adduser.conf contient les valeurs par défaut des programmes adduser, addgroup, deluser et delgroup.
Chaque option est de la forme option = valeur.

Cela permet de définir les homes, shell et autres valeurs par défaut.