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 jeanCette 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| Option | Effet |
|---|---|
-m | Creer le répertoire personnel /home/jean |
-s /bin/bash | Definir le shell par défaut |
-c "Jean Dupont" | Ajouter un commentaire (nom complet) |
-G sudo,docker | Ajouter a des groupes supplementaires |
Definir un mot de passe
sudo passwd jeanPour forcer le changement de mot de passe a la première connexion :
sudo passwd -e jeanModifier 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 comptechage -- 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 expirationSupprimer un utilisateur
sudo userdel jean # supprimer l'utilisateur (conserve /home/jean)
sudo userdel -r jean # supprimer l'utilisateur et son répertoireGerer 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 groupeAjouter un utilisateur a un groupe
sudo usermod -aG docker jean # ajouter au groupe docker
sudo usermod -aG sudo jean # donner les droits sudoL'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 jeanLes fichiers système
/etc/passwd
Chaque ligne représente un utilisateur :
jean:x:1001:1001:Jean Dupont:/home/jean:/bin/bash| Champ | Signification |
|---|---|
jean | Nom d'utilisateur |
x | Mot de passe stocké dans /etc/shadow |
1001 | UID (identifiant utilisateur) |
1001 | GID (identifiant du groupe principal) |
Jean Dupont | Commentaire |
/home/jean | Repertoire personnel |
/bin/bash | Shell 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éveloppeursFormat : 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 rootsudo -- 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 interactifvisudo -- 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 visudoExemples 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 upgradeFichiers 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-fpmBonnes pratiques
- Toujours utiliser
visudopour éditer la configuration sudo - Preferer les groupes aux règles individuelles pour gérer les droits
- Utiliser
-aGavecusermodpour 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.