Comment gérer et lister les utilisateurs sur Ubuntu : guide complet des comptes utilisateurs, des permissions et des commandes

目次

1. Introduction

Ubuntu est une distribution Linux populaire utilisée par de nombreux utilisateurs, allant des environnements personnels aux systèmes serveurs d’entreprise. Lors de la gestion d’un système Ubuntu, l’administration des comptes utilisateurs est essentielle. En particulier, consulter la liste des utilisateurs enregistrés aide à la gestion de la sécurité et à l’organisation des comptes.

Cet article explique comment lister les utilisateurs sur Ubuntu. Il couvre tout, des commandes de base aux méthodes pour récupérer des informations détaillées, ce qui le rend utile tant pour les débutants que pour les administrateurs expérimentés.

2. Comment vérifier la liste des utilisateurs dans Ubuntu

Sur Ubuntu, les informations sur les utilisateurs peuvent être récupérées facilement à l’aide de fichiers et de commandes spécifiques. Les méthodes suivantes vous permettent de vérifier la liste des utilisateurs.

2.1 Afficher la liste des utilisateurs avec /etc/passwd

Sur Ubuntu, toutes les informations des utilisateurs sont stockées dans le fichier /etc/passwd. Afficher ce fichier vous permet de vérifier tous les utilisateurs enregistrés.

Exemple de commande

cat /etc/passwd

L’exécution de cette commande affiche les informations au format suivant :

root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash

Chaque ligne est composée de champs séparés par des deux‑points (:) contenant les informations suivantes :

  1. Nom d’utilisateur
  2. Mot de passe (désormais représenté par x)
  3. Identifiant d’utilisateur (UID)
  4. Identifiant de groupe (GID)
  5. Informations sur l’utilisateur (champ commentaire)
  6. Répertoire personnel
  7. Shell de connexion par défaut

Comme ce fichier inclut les utilisateurs système, vous pouvez extraire uniquement les utilisateurs de connexion réguliers à l’aide des méthodes ci‑dessous.

2.2 Lister uniquement les noms d’utilisateur

Pour ne lister que les noms d’utilisateur, utilisez la commande suivante :

cut -d: -f1 /etc/passwd

Vous pouvez également utiliser la commande awk :

awk -F':' '{ print $1 }' /etc/passwd

Exemple de sortie :

root
user1
user2

2.3 Rechercher un utilisateur spécifique

Pour vérifier si un utilisateur spécifique existe, utilisez la commande grep :

grep 'user1' /etc/passwd

Cette commande n’affiche que l’entrée relative à user1.

2.4 Lister les groupes via /etc/group

Pour vérifier les groupes auxquels appartient un utilisateur, consultez le fichier /etc/group :

cat /etc/group | cut -d: -f1

Pour lister les groupes d’un utilisateur précis, utilisez :

groups user1

Exemple de sortie :

user1 : user1 sudo

Cela indique que user1 est également membre du groupe sudo.

3. Comment vérifier les utilisateurs actuellement connectés

Ubuntu propose plusieurs commandes pour vérifier quels utilisateurs sont actuellement connectés. Ces commandes aident à récupérer les informations de session et de connexion.

3.1 Vérifier les utilisateurs connectés avec who

La commande who répertorie tous les utilisateurs actuellement connectés.

Exemple de commande

who

Exemple de sortie

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

Explication des champs

  1. Nom d’utilisateur (utilisateur connecté)
  2. Nom du terminal (par ex. tty1 pour local, pts/0 pour SSH)
  3. Heure de connexion

La commande who est simple et utile lorsque vous voulez rapidement vérifier l’état des connexions.

3.2 Vérifier les informations détaillées avec w

La commande w fournit des informations plus détaillées que who.

Exemple de commande

w

Exemple de sortie

11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Explication des champs

  • Temps de fonctionnement du système
  • Nombre d’utilisateurs connectés
  • Charge moyenne du CPU
  • Nom d’utilisateur
  • Terminal
  • Hôte distant
  • Heure de connexion
  • Temps d’inactivité
  • Utilisation du CPU
  • Processus en cours

L’adresse IP dans le champ FROM aide à vérifier les connexions SSH distantes, ce qui est utile pour la surveillance et la gestion de la sécurité.

3.3 Afficher les utilisateurs connectés avec users

Si vous souhaitez une liste simplifiée affichant uniquement les noms d’utilisateur des utilisateurs connectés, la commande users est utile.

Exemple de commande

users

Exemple de sortie

user1 user2

Cette commande est une version simplifiée de who et n’affiche que les noms d’utilisateur connectés.

3.4 Identifier l’utilisateur actuel avec whoami

Pour vérifier quel utilisateur exécute la session en cours, utilisez la commande whoami.

Exemple de commande

whoami

Exemple de sortie

user1

Cette commande affiche simplement le nom d’utilisateur de la session en cours, ce qui est utile pour vérifier le contexte d’exécution.

3.5 Vérifier l’historique des connexions avec last

La commande last vous permet de consulter l’historique des connexions des utilisateurs.

Exemple de commande

last

Exemple de sortie

user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user2    tty1                          Mon Feb 15 09:30 - 10:00  (00:30)
root     tty1                          Sun Feb 14 22:15 - 23:45  (01:30)
  • Nom d’utilisateur
  • Terminal utilisé
  • Adresse IP distante
  • Heure de début de connexion
  • Heure de déconnexion (ou toujours connecté)
  • Durée totale de la session

Cette commande aide les administrateurs à surveiller les accès précédents et à détecter les connexions suspectes.

4. Comment vérifier les informations détaillées d’un utilisateur

Ubuntu propose plusieurs commandes pour récupérer des informations détaillées sur les utilisateurs enregistrés. Examiner des détails tels que l’UID, l’appartenance aux groupes et le shell de connexion aide les administrateurs à gérer les permissions avec précision. Cette section explique les méthodes avec id, groups, finger et chage.

4.1 Vérifier l’UID, le GID et les groupes avec id

La commande id affiche l’UID (identifiant d’utilisateur), le GID (identifiant de groupe) et l’appartenance aux groupes.

Exemple de commande
id user1
Exemple de sortie
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
  • uid → Identifiant de l’utilisateur
  • gid → Identifiant du groupe principal
  • groups → Tous les groupes auxquels l’utilisateur appartient
Vérifier les informations de l’utilisateur actuel
id

4.2 Vérifier l’appartenance aux groupes avec groups

La commande groups liste rapidement les groupes auxquels un utilisateur appartient.

Exemple de commande
groups user1
Exemple de sortie
user1 : user1 sudo docker

groups est utile lorsque vous ne souhaitez voir que les noms des groupes sans les identifiants détaillés.

4.3 Récupérer les détails d’un utilisateur avec finger

La commande finger fournit des informations détaillées sur l’utilisateur telles que le nom complet, le répertoire de connexion et le type de shell.

Commande d’installation
sudo apt install finger
Exemple de commande
finger user1
Exemple de sortie
Login: user1                    Name: User One
Directory: /home/user1          Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
  • Login → Nom d’utilisateur
  • Name → Nom complet (optionnel)
  • Directory → Répertoire personnel
  • Shell → Shell par défaut
  • Last login → Heure de la dernière connexion

4.4 Vérifier l’expiration du mot de passe avec chage

La commande chage permet aux administrateurs de consulter la période d’expiration du mot de passe et la date du dernier changement.

Exemple de commande
sudo chage -l user1
Exemple de sortie
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never
Account expires                 : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
  • Dernière modification de mot de passe → Date à laquelle le mot de passe a été modifié pour la dernière fois
  • Expiration du mot de passe → Date d’expiration du mot de passe
  • Mot de passe inactif → Durée d’inactivité avant que le mot de passe ne devienne invalide
  • Expiration du compte → Date d’expiration du compte
  • Nombre minimum de jours entre les modifications de mot de passe
  • Nombre maximum de jours entre les modifications de mot de passe
  • Jours d’avertissement avant l’expiration du mot de passe

Les administrateurs peuvent utiliser ces informations pour appliquer des politiques de mot de passe et améliorer la sécurité du système.

5. Gestion des utilisateurs dans Ubuntu (Ajouter, Supprimer, Modifier)

Une gestion appropriée des utilisateurs améliore la stabilité et la sécurité du système. Ubuntu fournit plusieurs commandes administratives telles que adduser, deluser et usermod. Cette section explique comment ajouter, supprimer et modifier des utilisateurs.

5.1 Ajout d’utilisateurs

Ubuntu permet d’ajouter de nouveaux utilisateurs en utilisant soit la commande adduser, soit useradd.

5.1.1 Commande adduser (Recommandée)

La commande adduser fournit un moyen interactif d’ajouter des utilisateurs.

sudo adduser newuser

Exemple d’invite interactive :

Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
  • Compte utilisateur
  • Groupe dédié
  • Répertoire personnel (/home/newuser)
  • Mot de passe pour la connexion
  • Informations de base sur le compte

5.1.2 Commande useradd (Avancée)

La commande useradd est adaptée aux scripts et offre un contrôle plus fin, mais ne configure pas automatiquement tout.

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
  • -m → Créer le répertoire personnel
  • -s /bin/bash → Définir le shell de connexion

Un mot de passe doit être défini séparément lors de l’utilisation de cette commande.

5.2 Suppression d’utilisateurs

Vous pouvez supprimer des utilisateurs en utilisant soit deluser, soit userdel.

5.2.1 Commande deluser (Recommandée)

La commande deluser supprime un compte utilisateur.

sudo deluser newuser
Supprimer également le répertoire personnel
sudo deluser --remove-home newuser

Cela supprime le compte et le répertoire /home/newuser.

5.2.2 Commande userdel (Avancée)

La commande userdel offre plus de contrôle.

sudo userdel newuser
sudo userdel -r newuser

5.3 Modification des utilisateurs existants

Utilisez la commande usermod pour modifier les informations d’un utilisateur existant.

5.3.1 Changer le nom d’utilisateur

sudo usermod -l newname oldname

5.3.2 Changer le répertoire personnel

sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1

5.3.3 Modifier l’appartenance à un groupe

sudo usermod -aG sudo user1
groups user1

5.3.4 Changer le mot de passe

sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

6. Scénarios pratiques pour la gestion des utilisateurs

La gestion des utilisateurs dans Ubuntu va au-delà de la simple liste et modification des comptes. Comprendre comment appliquer les commandes dans des scénarios réels est essentiel pour maintenir un environnement sécurisé et efficace. Cette section présente des cas d’utilisation courants et comment les traiter.

6.1 Recherche d’utilisateurs correspondant à des critères spécifiques

6.1.1 Afficher les utilisateurs avec des privilèges d’administrateur (sudo)

Pour lister les utilisateurs avec des privilèges sudo, utilisez la commande getent pour inspecter le fichier /etc/group :

getent group sudo

Exemple de sortie

sudo:x:27:user1,user2
  • sudo:x:27: → Informations sur le groupe
  • user1,user2 → Utilisateurs appartenant au groupe sudo

6.1.2 Afficher les utilisateurs aptes à se connecter

Le fichier /etc/passwd comprend les comptes système. Pour extraire uniquement les utilisateurs qui peuvent se connecter :

grep '/bin/bash' /etc/passwd

Exemple de sortie

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
  • Seuls les utilisateurs avec des shells comme /bin/bash ou /bin/sh sont inclus
  • Les comptes système utilisant /usr/sbin/nologin ou /bin/false sont exclus

6.1.3 Afficher les utilisateurs système (comptes sans connexion)

grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd

Exemple de sortie

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

Cela aide les administrateurs à identifier les comptes qui ne doivent pas être supprimés accidentellement.

6.2 Nettoyage périodique des utilisateurs inutilisés

6.2.1 Afficher la dernière connexion de tous les utilisateurs

lastlog

Exemple de sortie

Username         Port     From             Latest
root            tty1                      Mon Feb 12 14:02:08 +0000 2025
user1           pts/0    192.168.1.10      Mon Jan 15 10:30:12 +0000 2025
user2           pts/1    192.168.1.20      Never logged in
  • Jamais connecté → L’utilisateur ne s’est jamais connecté
    sudo deluser user2 --remove-home
    

6.2.2 Vérifier le dernier changement de mot de passe

sudo chage -l user1
sudo passwd --expire user1

La prochaine fois que l’utilisateur se connectera, une réinitialisation du mot de passe sera requise pour des raisons de sécurité.

6.3 Vérifier les utilisateurs connectés via SSH

who | grep pts

Exemple de sortie

user1    pts/0        192.168.1.10     11:30

Cela aide à identifier les utilisateurs distants et leurs adresses IP.

6.4 Exporter toutes les informations des utilisateurs en CSV

getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv

Exemple users.csv

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Exporte le nom d’utilisateur, l’UID, le GID et le répertoire personnel
  • Les données peuvent être analysées avec Excel ou des feuilles de calcul

7. FAQ

7.1 Puis-je modifier directement /etc/passwd ?

Réponse : La modification directe n’est pas recommandée. Des modifications incorrectes peuvent empêcher la connexion ou endommager le système.

Méthode plus sûre :

sudo vipw

7.2 Différence entre les commandes who et users

CommandDescription
whoDisplays detailed login information
usersDisplays only usernames of logged-in users

7.3 Comment vérifier l’historique de connexion d’un utilisateur spécifique

last user1

7.4 Comment changer le mot de passe d’un utilisateur

sudo passwd user1

7.5 Comment désactiver temporairement un utilisateur

sudo usermod -L user1
sudo usermod -U user1

7.6 Ajouter un utilisateur au groupe sudo

sudo usermod -aG sudo user1

7.7 Modifier le répertoire personnel d’un utilisateur

sudo usermod -d /new/home/path -m user1

7.8 Supprimer complètement un utilisateur et ses données

sudo deluser --remove-home user1

ou

sudo userdel -r user1

7.9 Vérifier l’activité détaillée des utilisateurs connectés

w
  • Utilisateurs connectés
  • Adresses IP distantes
  • Processus en cours
  • Charge du système

Cela permet aux administrateurs de surveiller l’utilisation et de détecter les accès non autorisés.