Le principe du moindre privilège
Pourquoi ne jamais travailler en administrateur/root
Petite vérification
Avant de commencer, vérifiez si vous savez encore répondre à ces 3 questions très simples, sur la séance précédente consacrée aux comptes et aux groupes :
- que fait la commande
adduser camille equipe-tech? - pourquoi
adduser nom groupeest-elle plus sûre queusermod -G groupe nom(sans le-a) ? - pourquoi
chown root:root fichier.txt, lancé par un utilisateur normal, échoue-t-il sanssudo?
📌 Réponse attendue
TP pour réfléchir et résoudre des problèmes
Votre défi pour aujourd'hui consiste à comprendre, très concrètement, pourquoi travailler en permanence en tant qu'administrateur est une mauvaise idée
Ce TP nécessite les droits sudo sur votre serveur Linux.
Étape 1 — Observer ce que sudo empêche, ponctuellement
L'équipe technique utilise un fichier de configuration /etc/equipe-tech.conf, qui ne doit être
modifié que par un administrateur.
sudo nano /etc/equipe-tech.conf
Dans nano, écrivez la ligne seuil_alerte=90, puis enregistrez (Ctrl+O, Entrée, Ctrl+X).
- Affichez les permissions et le propriétaire de ce fichier.
- Essayez de le modifier à nouveau, sans
sudocette fois (changez la valeur, puis tentez d'enregistrer avecnano). - Modifiez-le une dernière fois, avec
sudo, en changeant la valeur à95.
📌 Réponse attendue
Étape 2 — Mesurer le risque d'une session administrateur permanente
Complétez ce tableau, en comparant deux façons de travailler sur le même serveur.
| Situation | Ce qui se passe si vous exécutez, sans le savoir, un script piégé |
|---|---|
| Vous travaillez connecté avec votre compte utilisateur normal | |
Vous travaillez connecté en permanence en tant que root (ou avec une session sudo su - jamais refermée) |
📌 Réponse attendue
Étape 3 — Créer un compte de service, avec le strict nécessaire
L'équipe veut automatiser la sauvegarde du dossier /srv/equipe-tech (créé lors d'une séance
précédente). Plutôt que d'exécuter cette tâche en tant que root, créez-lui un compte dédié, avec
uniquement l'accès dont il a besoin.
- Créez le compte
svc-sauvegarde. - Ajoutez-le au groupe
equipe-tech, pour qu'il puisse lire le dossier à sauvegarder. - Vérifiez ses groupes.
📌 Réponse attendue
Étape 4 — Réagir à un cas pratique
Un collègue propose : « pour simplifier, on n'a qu'à ajouter tout le monde au groupe sudo, comme
ça on n'aura plus jamais de problème de permission ». Que lui répondez-vous ?
Restitution orale
Un étudiant (ou un binôme) vient présenter au tableau sa démarche pour créer le compte de service
svc-sauvegardeet sa réponse au collègue de l'étape 4.
- Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
- Qui passe : un(e) étudiant(e) (ou un binôme) désigné(e) par l'enseignant.
- Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
- Ce qui est attendu :
- expliquer pourquoi
svc-sauvegarden'a besoin que du groupeequipe-tech, et pas du groupesudo(étape 3) ; - présenter la réponse donnée au collègue de l'étape 4 ;
- répondre aux questions de la classe.
- expliquer pourquoi
Cet exercice entraîne à l'oral technique court exigé par plusieurs épreuves du BTS (notamment E5 et E6) : clarté, structure, capacité à répondre à l'improviste.
📌 Une solution
Notions théoriques
Vous venez d'appliquer, sans le nommer, le principe de sécurité le plus ancien et le plus universel de l'informatique : le principe du moindre privilège.
Qu'est-ce que le principe du moindre privilège ?
Le principe du moindre privilège consiste à donner à chaque utilisateur, programme ou compte de service exactement les droits nécessaires à sa tâche, ni plus, ni moins.
Ce principe ne concerne pas uniquement les humains : un script, un service, une application tournant sur un serveur ne devrait, lui non plus, jamais disposer de plus de droits que ce dont il a réellement besoin pour fonctionner.
sudo ponctuel contre session administrateur permanente
sudo élève vos privilèges une seule commande à la fois : c'est précisément ce qui, à l'étape 1
du TP, a bloqué une modification accidentelle sans sudo, tout en autorisant la modification
volontaire avec sudo. Une session ouverte en permanence en tant que root supprime cette
protection pour toutes les commandes suivantes, qu'elles soient volontaires ou non.
Un script malveillant exécuté par erreur ne « sait » pas qu'il est en train de nuire. C'est le niveau de privilège du compte qui l'exécute qui détermine l'ampleur réelle des dégâts possibles, comme vous l'avez constaté à l'étape 2 du TP.
Les comptes de service : le moindre privilège appliqué à l'automatisation
Une tâche automatisée (sauvegarde, surveillance, synchronisation...) ne devrait jamais s'exécuter
avec le compte root, pour les mêmes raisons qu'un humain : si le script ou le compte est un jour
compromis, les dégâts possibles restent limités à ce que ce compte peut réellement faire. Vous avez
appliqué ce principe à l'étape 3 du TP, en créant svc-sauvegarde avec le seul accès dont il avait
besoin.
Pourquoi élargir le groupe sudo est une mauvaise idée
Chaque compte ajouté au groupe sudo (ou wheel, admin selon les systèmes) devient une cible
potentielle pour obtenir les droits complets du serveur. Multiplier ces comptes revient à
multiplier les portes d'entrée possibles vers l'administration totale du système, exactement
l'inverse de ce que recherche le principe du moindre privilège.