Comment ajouter, modifier et supprimer un utilisateur sous Linux ?

La gestion des utilisateurs dans n’importe quel système d’exploitation est l’une des tâches de routine de base d’un administrateur système.

Pour un système d’exploitation basé sur Linux, cela implique généralement la création de comptes d’utilisateurs, la modification de comptes existants, comme la modification de leur répertoire personnel, le shell par défaut, le verrouillage/déverrouillage d’un ou plusieurs comptes et la suppression de comptes d’utilisateurs.

Avant d’étudier les commandes et les processus permettant d’effectuer ces tâches, examinons brièvement comment les comptes d’utilisateurs peuvent être classés sous Linux. Notez également que, sauf indication explicite, les commandes données fonctionneront dans la plupart des distributions Linux courantes.

Types d’utilisateurs

Utilisateur racine

L’utilisateur racine est l’administrateur du système d’exploitation avec toutes les autorisations pour effectuer des opérations. Habituellement, seul root peut installer/désinstaller ou mettre à jour les programmes et bibliothèques système de base. C’est le seul compte d’utilisateur avec des privilèges à l’échelle du système.

Ainsi, l’utilisateur root est l’utilisateur le plus puissant du système.

Utilisateur spécial

Ce sont les utilisateurs sans connexion. Ils n’ont pas tous les privilèges de l’utilisateur root. Selon le compte, ils assument différents rôles spécialisés.

Ceux-ci sont créés automatiquement lors de l’installation de toute application. bin, sync, lp, mail, operator, squid sont quelques exemples d’utilisateurs spéciaux.

Utilisateurs communs

Les utilisateurs communs ont tous les privilèges uniquement dans leur répertoire de travail, généralement leur répertoire personnel. Ils n’ont pas les privilèges pour gérer le système ou installer le logiciel. Ils ne peuvent pas effectuer ces tâches sans avoir des privilèges spéciaux via sudo.

Ajouter un utilisateur

Debian/Ubuntu

Sur un système basé sur Debian ou Ubuntu, il existe plusieurs options pour ajouter des utilisateurs à partir de la CLI. La première commande est adduser, qui est un script Perl et utilise la commande useradd dans le backend dont nous verrons l’utilisation plus tard.

Étant donné que l’ajout d’un utilisateur est une tâche privilégiée, vous devez utiliser sudo comme préfixe et nom d’utilisateur comme argument. D’autres détails peuvent être spécifiés lorsque vous y êtes invité. À l’exception du nom d’utilisateur et du mot de passe, le reste des détails est facultatif. Nous pouvons vérifier que l’utilisateur a été créé en utilisant la commande id.

$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$

CentOS/RHEL/Fedora (y compris Debian/Ubuntu)

La commande suivante, useradd fonctionnera sur les distributions de système d’exploitation basées sur RHEL et fonctionnera également sur les hôtes Ubuntu/Debian. La syntaxe la plus simple (sans aucune option supplémentaire) pour créer un nouvel utilisateur est :

$ sudo useradd <username>

Exemple:

$ sudo useradd janedoe

La commande useradd prend en charge plusieurs options pouvant être spécifiées lors de la création de l’utilisateur, les plus courantes étant l’ID utilisateur (UID), l’ID de groupe (GID), le shell par défaut et le répertoire personnel, etc. Un exemple de ce type est donné ci-dessous :

$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

Vous pouvez vérifier l’utilisateur nouvellement créé à l’aide de la commande id :

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Modification de l’utilisateur

Il est souvent nécessaire de modifier certaines propriétés des utilisateurs existants en fonction des exigences de l’organisation, des demandes des utilisateurs ou des migrations de système. La plupart de ces propriétés sont faciles à modifier, bien que nous devions nous assurer de la manière dont cela affectera l’environnement de l’utilisateur et l’accès aux fichiers détenus ou accessibles par l’utilisateur.

  Comment masquer les icônes du bureau sous Linux

Shell par défaut

Le shell par défaut est le shell CLI créé lorsqu’un utilisateur lance une nouvelle session CLI soit localement, soit via SSH. La plupart des systèmes modernes ont un utilisateur par défaut Bash bien qu’il puisse varier en fonction de la distribution Linux ou de l’environnement de l’utilisateur. Pour modifier le shell par défaut d’un utilisateur, utilisez :

$ sudo usermod -s <shell> <username>

Exemple:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$

Comme vous pouvez le voir dans la sortie ci-dessus, le shell a été changé de /bin/sh à /bin/bash pour l’utilisateur janedoe.

  Comment télécharger et installer Apache Kafka [Windows and Linux]

Répertoire d’accueil

Comme le shell par défaut, le répertoire personnel d’un utilisateur peut être modifié à un emplacement différent en utilisant :

$ sudo usermod -d <new_directory_path> <username>

Dans l’exemple ci-dessous, le répertoire personnel de l’utilisateur janedoe a été remplacé par /data/janedoe :

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$

Avant d’effectuer le changement, assurez-vous que le nouveau répertoire possède le bon propriétaire et les bonnes autorisations. Sinon, l’utilisateur peut rencontrer des problèmes lors de la connexion ou du travail dans le nouveau répertoire de base.

Identifiant d’utilisateur

Vous pouvez modifier l’ID utilisateur d’un utilisateur existant en utilisant :

$ sudo usermod -u <new_uid> <username>

Exemple:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$

Encore une fois, la modification de l’UID modifie la façon dont le système de fichiers Linux mappe la propriété et l’autorisation d’un fichier ou d’un répertoire. Assurez-vous que le répertoire personnel de l’utilisateur, son contenu et tous les autres fichiers n’importe où dans le système, appartenant à l’origine à l’utilisateur (avec l’ancien UID), sont remplacés par UID mappé. Ne pas le faire peut entraîner des problèmes dans la session CLI et l’accès aux fichiers par l’utilisateur.

Groupe par défaut

Le groupe par défaut est généralement l’ID de groupe par défaut de l’utilisateur, qui est créé lors de la création de l’utilisateur, sauf si un autre GID est spécifié. Linux vous permet également de modifier le groupe par défaut d’un utilisateur à l’aide de la commande usermod. Voici la syntaxe à utiliser :

$ sudo usermod -g <new_gid or group_name> <username>

Voici un exemple :

$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$

Encore une fois, assurez-vous que le nouvel ID de groupe est défini sur le répertoire de base de l’utilisateur, son contenu et tous les autres fichiers ou répertoires applicables pour migrer correctement ses autorisations de propriété.

Ajout/suppression de groupes

Outre le groupe par défaut, un utilisateur sous Linux peut faire partie de groupes secondaires. Nous pouvons toujours ajouter ou supprimer des groupes supplémentaires auxquels un utilisateur appartient en utilisant la commande usermod.

$ sudo usermod -a -G <group_id or group_name> <username>

Exemple:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$

De même, pour supprimer un utilisateur de l’un des groupes secondaires, utilisez la commande gpasswd comme indiqué ci-dessous :

$ sudo gpasswd -d <username> <groupname>

Exemple:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Commentaire du GECOS

Le champ GECOS dans /etc/passwd contient des informations ou des commentaires sur l’utilisateur. Nous pouvons modifier ces informations pour un utilisateur existant comme :

$ sudo usermod -c <comment> <username>

Exemple:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$

Veuillez noter que si votre commentaire ou les détails de l’utilisateur contiennent des espaces, placez ce champ entre guillemets comme dans l’exemple ci-dessus.

  Comment graver un fichier ISO sur une clé USB sous Linux

Identifiant

Le nom de connexion de l’utilisateur peut également être modifié à l’aide de la commande usermod en utilisant l’indicateur -l :

$ sudo usermod -l <new_username> <old_username>

Exemple:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$

N’oubliez pas de mettre à jour les références des utilisateurs en fonction du nouveau nom, où qu’il soit utilisé. Même dans des commandes comme id, le nouveau nom d’utilisateur doit être spécifié.

Suppression d’un utilisateur

Un utilisateur peut être supprimé de Linux à l’aide de la commande userdel.

$ sudo userdel <username>

Exemple:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$

Pour supprimer un utilisateur avec son répertoire personnel et son spool de courrier, ajoutez également l’indicateur -r.

$ sudo userdel -r <username>

Spécifiquement pour les systèmes basés sur Ubuntu, vous pouvez également utiliser la commande deluser pour supprimer un utilisateur :

$ sudo deluser <username>

De même, pour supprimer également le répertoire personnel et le spouleur de courrier, utilisez :

$ sudo deluser --remove-home <username>

Pour des informations détaillées et d’autres options prises en charge, reportez-vous à la page principale des différentes commandes à l’aide de :

$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel

Conclusion

Cet article a montré divers aspects de la gestion des utilisateurs dans un système Linux. Cela inclut une explication des différentes catégories d’utilisateurs et comment les ajouter et les supprimer. Il couvre également diverses options permettant de modifier les paramètres d’un utilisateur existant. Bien qu’il ne couvre pas toutes les possibilités prises en charge par diverses commandes, il couvre un grand nombre de tâches d’administration courantes qu’un administrateur système rencontrera dans son travail quotidien.

Vous pourriez également être intéressé par la lecture : Comment supprimer des fichiers et des répertoires sous Linux ?