MDstable
NoteSnippetChecklistPlaybook

Gestion des utilisateurs Linux

Créer, modifier, supprimer des comptes utilisateurs et gérer sudo

snippetbeginner 2025-05-10 3 min read
linuxuserssudopermissionsuseradd

Créer un utilisateur

bash
Variables
{{USER}}
{{PASSWORD}}
# Avec répertoire home et shell par défaut
useradd -m -s /bin/bash {{USER}}
# Avec commentaire (nom complet) et groupe primaire
useradd -m -s /bin/bash -c "John Doe" -g users {{USER}}
# Définir le mot de passe
passwd {{USER}}
# Créer + mot de passe en une ligne
useradd -m -s /bin/bash {{USER}} && echo "{{USER}}:{{PASSWORD}}" | chpasswd

Modifier un utilisateur

bash
Variables
{{USER}}
# Changer le shell
usermod -s /bin/zsh {{USER}}
# Ajouter à un groupe supplémentaire (sans retirer des autres)
usermod -aG sudo {{USER}}
usermod -aG docker{{USER}} {{USER}}
# Renommer
usermod -l nouveau_nom ancien_nom
# Verrouiller / déverrouiller le compte
usermod -L {{USER}} # lock
usermod -U {{USER}} # unlock
# Changer le répertoire home
usermod -d /new/home -m {{USER}}

Supprimer un utilisateur

bash
Variables
{{USER}}
# Sans supprimer le home
userdel {{USER}}
# Avec suppression du home et du mailspool
userdel -r {{USER}}

Gestion des groupes

bash
Variables
{{GROUP}}
{{USER}}
# Créer un groupe
groupadd {{GROUP}}
# Lister les membres d'un groupe
getent group {{GROUP}}
# Retirer un utilisateur d'un groupe
gpasswd -d {{USER}} {{GROUP}}
# Voir tous les groupes d'un utilisateur
groups {{USER}}
id {{USER}}

Sudo

bash
Variables
{{USER}}
# Ajouter au groupe sudo (Debian/Ubuntu)
usermod -aG sudo {{USER}}
# Ajouter au groupe wheel (RHEL/CentOS)
usermod -aG wheel {{USER}}
# Editer sudoers (toujours via visudo !)
visudo
# Autoriser un user sans mot de passe
{{USER}} ALLALL NOPASSWD ALL
# Autoriser seulement certaines commandes
{{USER}} ALLALL NOPASSWD /usr/bin/systemctl restart nginx /usr/bin/systemctl status nginx
# Vérifier les droits sudo d'un utilisateur
sudo -l -U {{USER}}

Comptes système et service

bash
Variables
{{SERVICE}}
{{USER}}
# Créer un compte service (sans home, sans login)
useradd -r -s /usr/sbin/nologin {{SERVICE}}
# Vérifier les comptes sans mot de passe
awk -F: '($2 == "") {print $1}' /etc/shadow
# Comptes avec UID 0 (root-like)
awk -F: '($3 == 0) {print $1}' /etc/passwd
# Expiration de mot de passe
chage -l {{USER}} # voir la politique
chage -M 90 {{USER}} # expire dans 90 jours
chage -E 2025-12-31 {{USER}} # expire à une date

Fichiers clés

bash
/etc/passwd # Liste des comptes (pas les mots de passe)
/etc/shadow # Hash des mots de passe (lecture root seulement)
/etc/group # Groupes et membres
/etc/sudoers # Règles sudo (toujours éditer via visudo)
/etc/sudoers.d/ # Fichiers de règles additionnels
💡 Tip —

Ne jamais éditer /etc/sudoers directement — toujours utiliser visudo qui valide la syntaxe avant de sauvegarder. Une erreur de syntaxe peut bloquer tous les accès sudo.

OPS·BRAIN v1.09 notes · SysAdminlocal