Linux Platform

Gerer les utilisateurs et les groupes

Apprenez a créer, modifier et supprimer des utilisateurs et des groupes sous Linux. Maitrisez les fichiers système, les mots de passe et l'elevation de privileges avec sudo.

utilisateursgroupessudopasswdsécurité

Introduction

La gestion des utilisateurs et des groupes est une tache fondamentale de l'administration Linux. Chaque processus et chaque fichier est associé a un utilisateur et a un groupe, ce qui constitue la base du modèle de sécurité du système.

Creer un utilisateur

useradd -- Creation basique

sudo useradd jean

Cette commande créé l'utilisateur mais sans répertoire personnel ni mot de passe. Pour une creation plus complète :

sudo useradd -m -s /bin/bash -c "Jean Dupont" jean
OptionEffet
-mCreer le répertoire personnel /home/jean
-s /bin/bashDefinir le shell par défaut
-c "Jean Dupont"Ajouter un commentaire (nom complet)
-G sudo,dockerAjouter a des groupes supplementaires

Definir un mot de passe

sudo passwd jean

Pour forcer le changement de mot de passe a la première connexion :

sudo passwd -e jean

Modifier un utilisateur

usermod -- Modifier les propriétés

sudo usermod -c "Jean M. Dupont" jean       # modifier le commentaire
sudo usermod -s /bin/zsh jean                # changer le shell
sudo usermod -d /home/jean_new -m jean       # déplacér le répertoire personnel
sudo usermod -l jean_nouveau jean            # renommer l'utilisateur
sudo usermod -L jean                         # verrouiller le compte
sudo usermod -U jean                         # deverrouiller le compte

chage -- Gerer l'expiration du mot de passe

sudo chage -l jean                           # afficher les informations d'expiration
sudo chage -M 90 jean                        # mot de passe expire après 90 jours
sudo chage -E 2026-12-31 jean               # compte expire le 31 decembre 2026
sudo chage -W 14 jean                        # avertir 14 jours avant expiration

Supprimer un utilisateur

sudo userdel jean                            # supprimer l'utilisateur (conserve /home/jean)
sudo userdel -r jean                         # supprimer l'utilisateur et son répertoire

Gerer les groupes

Creer et supprimer un groupe

sudo groupadd développeurs
sudo groupmod -n devs développeurs           # renommer le groupe
sudo groupdel devs                           # supprimer le groupe

Ajouter un utilisateur a un groupe

sudo usermod -aG docker jean                 # ajouter au groupe docker
sudo usermod -aG sudo jean                   # donner les droits sudo

L'option -a (append) est essentielle : sans elle, l'utilisateur est retire de tous ses autres groupes supplementaires.

Verifier les groupes d'un utilisateur

groups jean
id jean

Les fichiers système

/etc/passwd

Chaque ligne représente un utilisateur :

jean:x:1001:1001:Jean Dupont:/home/jean:/bin/bash
ChampSignification
jeanNom d'utilisateur
xMot de passe stocké dans /etc/shadow
1001UID (identifiant utilisateur)
1001GID (identifiant du groupe principal)
Jean DupontCommentaire
/home/jeanRepertoire personnel
/bin/bashShell par défaut

/etc/shadow

Contient les mots de passe chiffres et les informations d'expiration. Accessible uniquement par root :

sudo cat /etc/shadow | grep jean

/etc/group

Liste les groupes et leurs membres :

cat /etc/group | grep développeurs

Format : nom_groupe:x:GID:membre1,membre2

Elevation de privileges -- su et sudo

su -- Changer d'utilisateur

su - jean              # se connecter en tant que jean (avec son environnement)
su -                   # se connecter en tant que root

sudo -- Executer une commande en tant que root

sudo apt update
sudo -u postgres psql  # exécuter en tant que l'utilisateur postgres
sudo -i                # ouvrir un shell root interactif

visudo -- Configurer les droits sudo

La configuration de sudo se fait dans /etc/sudoers. Il faut toujours utiliser visudo qui vérifié la syntaxe avant de sauvegarder :

sudo visudo

Exemples de règles :

# Autoriser jean a tout faire
jean ALL=(ALL:ALL) ALL
 
# Autoriser le groupe déployément a redémarrer nginx sans mot de passe
%déployément ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
 
# Autoriser marie a gérer les paquets
marie ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade

Fichiers sudoers.d

Plutot que de modifier le fichier principal, vous pouvez créer des fichiers dans /etc/sudoers.d/ :

sudo visudo -f /etc/sudoers.d/déployément
%déployément ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart php-fpm

Bonnes pratiques

  • Toujours utiliser visudo pour éditer la configuration sudo
  • Preferer les groupes aux règles individuelles pour gérer les droits
  • Utiliser -aG avec usermod pour ne pas ecraser les groupes existants
  • Definir une politique d'expiration des mots de passe avec chage
  • Verrouiller les comptes inutilisés plutot que de les supprimer immédiatement

Conclusion

La gestion des utilisateurs et des groupes sous Linux repose sur un ensemble de commandes simples mais puissantes. Combinees a une bonne configuration de sudo, elles permettent de mettre en place un contrôle d'accès precis et sécurisé sur vos systèmes.