Chapitre 4: Utilisateurs et groupes

Avant-propos

Nous vous recommandons de ne pas utiliser d’IA pour faire les exercices car vous êtes en phase d’apprentissage.

Introduction

Linux est un vrai système multi-utilisateurs ! Plusieurs utilisateurs peuvent se connecter et exécuter des tâches en même temps. Il a aussi un mode mono-utilisateur (« single user ») géré par le noyau, utilisé uniquement à des fins de maintenance. Les utilisateurs ont généralement :

Prérequis (La répétition est pédagogique 😜)

Info: Si vous n’avez pas de d’environnement Linux à votre disposition, vous pouvez vous inscrire sur https://killercoda.com et vous rendre ici https://killercoda.com/playgrounds/scenario/ubuntu pour avoir accès à une machine virtuelle sous Ubuntu 24.04 (sans interface graphique bien sûr !!) pendant 1 heure renouvelable gratuitement.

Vous aurez donc cette vue:



Gestion des utilisateurs

Intro

À tester 👨🏾‍💻👩🏾‍💻:

Ci-dessous un exemple de retour similaire que vous aurez:


Un peu d’explication rapide.

Commande : whoami

widal@j4rd1n-d3s-0mbr3s:~$ whoami
widal

Commande : id

widal@j4rd1n-d3s-0mbr3s:~$ id
uid=1000(widal) gid=1000(widal) groupes=1000(widal),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare),136(vboxusers),141(libvirt),999(docker)

Commande : who

widal@j4rd1n-d3s-0mbr3s:~$ who
widal    :1           2025-04-04 16:04 (:1)
widal    pts/0        2025-04-04 16:05 (j)
widal    pts/1        2025-04-04 16:05 (j)
widal    pts/2        2025-04-04 16:05 (j)

Commande : w

widal@j4rd1n-d3s-0mbr3s:~$ w
 17:51:24 up 17 days,  1:47,  4 users,  load average: 1,46, 1,24, 1,20
UTIL.    TTY      DE               LOGIN@   IDLE   JCPU   PCPU QUOI
widal    :1       :1               04avril25 ?xdm?  21:01m  0.01s /usr/libexec/gdm-x-session ...
widal    pts/0    j                04avril25 17jours  0.00s  0.00s /bin/bash
widal    pts/1    j                04avril25  7jours  0.09s  0.09s /bin/bash
widal    pts/2    j                04avril25 13:53   0.02s  0.02s /bin/bash

C’est quoi le fichier /etc/passwd ?

À tester 👨🏾‍💻👩🏾‍💻:


🔁🃏 UNO Reverse !!!


À tester 👨🏾‍💻👩🏾‍💻:

Les commandes de gestion des utilisateurs

Points d’attention ⚠️

Ci-dessous une situation.

widal@j4rd1n-d3s-0mbr3s:~$ whoami
widal
widal@j4rd1n-d3s-0mbr3s:~$ useradd avrell
useradd: Permission denied.
useradd : impossible de verrouiller /etc/passwd ; réessayer plus tard.
widal@j4rd1n-d3s-0mbr3s:~$ sudo useradd avrell
[sudo] Mot de passe de widal : 
widal@j4rd1n-d3s-0mbr3s:~$ id avrell
uid=1002(avrell) gid=1002(avrell) groupes=1002(avrell)
widal@j4rd1n-d3s-0mbr3s:~$ 
widal@j4rd1n-d3s-0mbr3s:~$ echo "user avrell is there"
user avrell is there
widal@j4rd1n-d3s-0mbr3s:~$ 


1. useradd – Ajouter un nouvel utilisateur

sudo useradd nom_utilisateur

Exemple :

sudo useradd -m alice

2. usermod – Modifier un utilisateur existant

sudo usermod [options] nom_utilisateur

Exemples :

sudo usermod -aG sudo alice

Cela ajoute alice au groupe sudo.

sudo usermod -d /nouveau/chemin alice

Cela change le dossier personnel de alice.


3. passwd – Changer le mot de passe d’un utilisateur

sudo passwd nom_utilisateur

Cela permet de définir ou modifier le mot de passe d’un utilisateur.

Exemple :

sudo passwd alice

Cela invite à saisir un nouveau mot de passe pour alice.


4. userdel – Supprimer un utilisateur

sudo userdel nom_utilisateur

Exemple :

sudo userdel alice

Supprimer aussi son dossier :

sudo userdel -r alice

adduser vs useradd

Commande Description
useradd Commande de bas niveau : simple, mais nécessite plus d’options.
adduser Script interactif : guide étape par étape pour créer un utilisateur (mot de passe, info, dossier personnel, le shell etc.).

Exemple :

sudo adduser bob

Cela démarre un assistant pour créer un utilisateur complet.


​⚠️ INFO EN PLUS:
Il peut arriver qu’il y ait un bémol (lors de l’utilisation de useradd généralement) et votre utilisateur se retrouve sans répertoire personnel. Vous pouvez donc rattraper ce bémol avec la commande mkhomedir_helper. (ex. mkhomedir_helper myuserbob).



TLDR (Résumé rapide)

Commande Rôle
useradd Créer un utilisateur (simple)
adduser Créer un utilisateur (assisté)
usermod Modifier un utilisateur existant
passwd Modifier le mot de passe
userdel Supprimer un utilisateur
mkhomedir_helper Créer le répertoire personnel d’un utilisateur

Commandes pour changer d’utilisateur



Exercice ⚔️

Ci-dessous un exemple d’exécution:

# On télécharge le script du challenge 1
curl -LO https://raw.githubusercontent.com/N0vachr0n0/NoFD/refs/heads/main/USER_EXO_1.sh

# On le rend exécutable
chmod +x USER_EXO_1.sh

# On l'exécute pour démarrer le challenge
./USER_EXO_1.sh



Gestion des Groupes

Intro

À tester 👨🏾‍💻👩🏾‍💻:

À tester 👨🏾‍💻👩🏾‍💻:

Le x que vous verrez encore ici, représente le mot de passe du groupe. Il se trouve dans /etc/gshadow, et comme pour les utilisateurs dans /etc/shadow :

Le groupe sudo ou wheel

Les commandes de gestion des groupes

⚠️ N’oublie pas les points d’attention ⚠️

Gestion du fichier /etc/sudoers

Le fichier /etc/sudoers est un fichier de configuration utilisé sur les systèmes Linux/Unix pour définir les permissions des utilisateurs et des groupes concernant l’utilisation de la commande sudo. Il détermine qui peut exécuter des commandes en tant qu’administrateur (root) ou un autre utilisateur, et quelles commandes spécifiques ils peuvent exécuter. Ce fichier est crucial pour la sécurité, car une mauvaise configuration peut soit bloquer l’accès légitime, soit accorder trop de privilèges.

Le fichier sudoers ne doit jamais être édité directement avec un éditeur classique (comme nano ou vim), car une erreur de syntaxe peut bloquer l’accès à sudo. La méthode recommandée est d’utiliser la commande visudo, qui vérifie la syntaxe avant de sauvegarder.

   sudo visudo

Ci-dessous quelques exemples de ligne.

Ligne Signification
jean ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl L’utilisateur jean est autorisé à exécuter uniquement les commandes /usr/bin/apt et /usr/bin/systemctl en tant qu’utilisateur root ou tout autre utilisateur, depuis n’importe quel hôte.
jean ALL=(ALL) NOPASSWD: ALL L’utilisateur jean peut exécuter toutes les commandes en tant que n’importe quel utilisateur sans avoir à entrer son mot de passe.
jean ALL=(ALL) ALL L’utilisateur jean peut exécuter toutes les commandes en tant que n’importe quel utilisateur, mais devra entrer son mot de passe.
%admins ALL=(ALL) ALL Tous les membres du groupe admins peuvent exécuter toutes les commandes en tant que n’importe quel utilisateur, avec obligation d’entrer leur mot de passe. (Attention au %)

Pour terminer en beauté, je vous invite à faire des recherches sur:

sudo -l

Exercice ⚔️

Exécuter le script pour débuter le challenge comme un grand 😉.



Feedback

Faites-nous part de votre avis sur ce chapitre.

👉🏾 Cliquez ici