← Sommaire SkyLinux

Leçon 14 : Gestion des utilisateurs et groupes

Dans cette leçon, tu vas maîtriser la gestion des utilisateurs et groupes sous Linux, essentiel pour l'administration système.


1. Concepts de base

Utilisateur

Un utilisateur Linux possède :

Groupe

Un groupe permet de :

Fichiers système importants

FichierDescription
/etc/passwdInfos utilisateurs
/etc/shadowMots de passe chiffrés
/etc/groupInfos groupes
/etc/skel/Modèle pour nouveaux utilisateurs

2. Commandes utilisateur

Ajouter un utilisateur

# Créer un utilisateur

sudo useradd -m nom_utilisateur

# Avec options

sudo useradd -m -s /bin/bash -c "Description" -G groupe1,groupe2 nom

#interactif

sudo adduser nom_utilisateur

Modifier un utilisateur

# Changer le shell

sudo usermod -s /bin/zsh nom

# Ajouter à un groupe

sudo usermod -aG groupe nom

# Changer le répertoire home

sudo usermod -d /nouveau/chemin -m nom

# Verrouiller/déverrouiller un compte

sudo usermod -L nom # Verrouiller

sudo usermod -U nom # Déverrouiller

Supprimer un utilisateur

# Supprimer (garde les fichiers)

sudo userdel nom

# Supprimer avec fichiers

sudo userdel -r nom

# Supprimer avec confirmation

sudo userdel -r -f nom

Changer le mot de passe

# Changer son mot de passe

passwd

# Changer mot de passe d'un autre utilisateur (root)

sudo passwd nom_utilisateur

# Vider le mot de passe

sudo passwd -d nom_utilisateur

# Expirer le mot de passe

sudo passwd -e nom_utilisateur


3. Commandes groupe

Créer un groupe

sudo groupadd nom_groupe

sudo groupadd -g 1005 nom_groupe # Avec GID spécifique

Modifier un groupe

# Renommer un groupe

sudo groupmod -n nouveau_nom ancien_nom

# Changer le GID

sudo groupmod -g 1006 nom_groupe

Supprimer un groupe

sudo groupdel nom_groupe

Gérer les membres

# Ajouter un utilisateur à un groupe

sudo usermod -aG groupe utilisateur

# Retirer d'un groupe

sudo gpasswd -d utilisateur groupe

# Voir les membres d'un groupe

getent group groupe


4. Informations et listing

Voir les utilisateurs

# Liste des utilisateurs

cat /etc/passwd

# ou

getent passwd

# Filtrer

getent passwd | cut -d: -f1

# Derniers utilisateurs créés

lastlog

Voir les groupes

# Liste des groupes

cat /etc/group

# ou

getent group

# groupes d'un utilisateur

groups nom_utilisateur

id nom_utilisateur

Voir l'UID et GID

id # Ses propres IDs

id nom_utilisateur # IDs d'un utilisateur


5. Commandes avancées

sudoers - Permissions sudo

# Éditer le fichier sudoers (TOUJOURS avec visudo!)

sudo visudo

# Ajouter un utilisateur au groupe sudo

sudo usermod -aG sudo nom

# Voir qui a sudo

getent group sudo

Expiration de compte

# Définir une date d'expiration

sudo usermod -e 2024-12-31 nom

# Voir la date d'expiration

sudo chage -l nom

#Forcer changement mot de passe

sudo chage -d 0 nom

Verrouillage de compte

# Verrouiller

sudo passwd -l nom

# Déverrouiller

sudo passwd -u nom

# Voir le statut

sudo passwd -S nom


6. Gestion des mots de passe

Politiques de mot de passe

# Installer libpam-pwquality

sudo apt install libpam-pwquality

# Configurer (/etc/security/pwquality.conf)

sudo nano /etc/security/pwquality.conf

Exigences communes

minlen = 12

dcredit = -1 # Au moins 1 chiffre

ucredit = -1 # Au moins 1 majuscule

lcredit = -1 # Au moins 1 minuscule

ocredit = -1 # Au moins 1 caractère spécial

Historique et expiration

# Configuration dans /etc/login.defs

# ou avec chage

sudo chage -m 7 nom # Minimum 7 jours

sudo chage -M 90 nom # Maximum 90 jours

sudo chage -W 7 nom # Avertissement 7 jours avant expiration

sudo chage -I 30 nom # Verrouillage 30 jours après expiration


7. Scripts pratiques

Créer un nouvel utilisateur avec tout

#!/bin/bash

# Variables

USERNAME="nouvelutilisateur"

FULLNAME="Nouvel Utilisateur"

SHELL="/bin/bash"

GROUPES="sudo,users"

# Créer le groupe principal s'il n'existe pas

sudo groupadd $USERNAME 2>/dev/null

# Créer l'utilisateur

sudo useradd -m -s $SHELL -c "$FULLNAME" -G $GROUPES $USERNAME

# Définir le mot de passe

sudo passwd $USERNAME

echo "Utilisateur $USERNAME créé avec succès!"

Script de suppression

#!/bin/bash

USERNAME="utilisateur_a_supprimer"

# Demander confirmation

read -p "Supprimer l'utilisateur $USERNAME? (o/n): " confirm

if [ "$confirm" = "o" ]; then

sudo userdel -r $USERNAME

echo "Utilisateur supprimé."

else

echo "Annulé."

fi


8. Bonnes pratiques

PratiqueDescription
Utiliser sudoPas de connection root directe
Mots de passe fortsMinimum 12 caractères, mélange
Groupes logiquesRegrouper par projet/fonction
Audit régulierVérifier les utilisateurs
Désactiver compteJamais supprimer (garder UID)
Limiter sudoSeulement utilisateurs nécessaires

9. Résumé

CommandeDescription
useraddCréer utilisateur
usermodModifier utilisateur
userdelSupprimer utilisateur
passwdChanger mot de passe
groupaddCréer groupe
groupdelSupprimer groupe
groupsLister ses groupes
idVoir UID/GID
getentConsulter base

Maîtrise la gestion des utilisateurs pour administrer Linux correctement ! 👤


Complément: Commandes useradd/usermod

1. Anatomie d'un compte utilisateur

Chaque utilisateur sur Linux est défini par plusieurs informations stockées dans deux fichiers clés :

/etc/passwd — informations du compte (login, UID, GID principal, shell, etc.)

/etc/shadow — mot de passe chiffré (accessible uniquement à root)

/etc/group — liste des groupes et de leurs membres

/etc/gshadow — mots de passe des groupes (rarement utilisé)

3. passwd — Définir le mot de passe

Après useradd, il faut attribuer un mot de passe :

Résumé

La gestion des utilisateurs est une compétence fondamentale pour tout administrateur Linux. Ces commandes te permettent de créer, configurer, protéger et supprimer des comptes en toute sécurité.