2.4 Gestion des droits Linux¶
☕ À la machine à café de CorpTech
En vous rendant à la machine à café, vous surprenez une discussion entre deux collègues :
- « Euh… tu sais pourquoi j’ai maintenant accès aux fiches de paie ? »
- « Ah ben… t’as de la chance. Moi, je n’ai plus accès aux sauvegardes depuis la semaine dernière. »
- « Ouais… c'est quand même la "loose"»
Ce n’est pas « juste un problème technique »
« Euh… tu sais pourquoi j’ai maintenant accès aux fiches de paie ? »
Lorsqu’un prestataire peut exposer de telles données personnelles, le problème ne se limite plus à un simple incident ou une "erreur" de configuration.
Cela révèle une défaillance organisationnelle profonde :
- absence de politique de gestion des accès clairement définie ;
- absence de procédures formalisées et validées ;
- absence de supervision et de contrôle des actions du prestataire ;
- absence de responsabilité clairement établie.
Dans ce contexte, l’accès non autorisé aux fiches de paie par une personne non autorisée constitue une violation de données à caractère personnel au sens du droit RGPD.
Mais ce n’est pas le seul problème. Cette situation révèle également un manquement caractérisé de la direction à l’obligation de sécurité imposée par le RGPD, qui exige de l’entreprise une mise en œuvre des mesures techniques et organisationnelles appropriées afin de prévenir toute exposition non autorisée de ces données.
Autrement dit, la responsabilité de l’entreprise est engagée pour l’incident constaté, mais aussi pour ne pas avoir mis en place les moyens nécessaires pour empêcher qu’il se produise.
Warning
La configuration des droits d’accès n’est que la surface visible du problème. Elle révèle ce qui a été pensé… et surtout ce qui ne l’a pas été.
Sur un système Unix, cette surface visible prend une forme très concrète : les permissions appliquées aux fichiers et aux répertoires. C’est à ce niveau précis que les décisions organisationnelles, les procédures - ou leur absence - se traduisent en droits d'accès … ou non.
Présentation du contexte professionnel
Le serveur de fichiers Linux dont vous héritez a été configuré par un prestataire dont la définition du concept de sécurité reste à ce jour un mystère.
Votre rôle, en tant que stagiaire fraîchement embauché au service INFRA, est de :
- analyser l’existant sans tout casser ;
- identifier les erreurs de droits et de structure ;
- proposer et appliquer des corrections cohérentes avec l’organisation de l’entreprise ;
- vérifier, pour chaque service (DEV, INFRA, COM, DIR), que les accès correspondent bien à ce qui est attendu.
- La direction a été alertée sur ces manquements réglementaires sérieux et attend un diagnostic rapide, accompagné de mesures correctives.
Don't panic
Ce TP sera encore une fois votre guide, alors commençons par le début.
Les droits POSIX¶
Les systèmes Unix (dont Linux) utilisent un modèle de permissions appelé POSIX. Il repose sur trois catégories d’utilisateurs (user / group / other) et trois permissions (r / w / x).
C’est la base absolument indispensable pour comprendre pourquoi un fichier est accessible… ou non.
Les trois catégories d’accès¶
Chaque fichier (ou dossier) appartient à : - user → son propriétaire - group → un groupe d’utilisateurs - other → tous les autres utilisateurs du système
Un fichier a donc trois ensembles distincts de permissions.
Les trois permissions¶
- r (read) → lire le fichier, ou lister le contenu d’un dossier
- w (write) → modifier un fichier, ou créer/supprimer dans un dossier
- x (execute) → exécuter un programme, ou entrer dans un dossier
Plus tard : nous verrons les bits spéciaux (SUID, SGID, Sticky Bit) qui ajoutent des comportements supplémentaires.
Comment lire les droits ?¶
La commande ls permet de lister le contenu d'un dossier mais également d'afficher les propriétés associées à un fichier ou un dossier .
Prenons un exemple simple :
touch test.txt # création d'un fichier vide
ls -l test.txt
Résultat typique (si vous avez a):
-rw------- 1 root etudiants 0 Dec 1 16:07 test.txt
exemple : -rw-r----- 1 alice dev 428 Dec 1 16:07 rapport.txt

La première colonne [-rw-------] représente l'ensemble des droits** du fichier.
Elle de découpe en quatre blocs :
[-][rw-][---][---]
| | | |
| | | └─── other (autres utilisateurs)
| | └──────── group (groupe propriétaire)
| └───────────── user (propriétaire)
└───────────────── type (fichier, dossier, lien…)
Interprétation (de la gauche vers la droite): - type : - → c'est un fichier (pas un dossier) - user : rw- → le propriétaire peut lire (read) et écrire (write) - group : --- → le groupe n’a aucun droit - other : --- → les autres n’ont aucun droit
Vous vous en êtes sans doute aperçu, les système UNIX utilisent deux notations complémentaires : - une notation symbolique, comme rw-rw-r--, pensée pour l’humain. On peut voir d’un coup d’œil qui peut lire, écrire ou exécuter ; - une notation octale, comme 664, utilisée par les commandes (chmod, umask) car elle correspond directement au fonctionnement interne du système.
Cette notation octale s’explique par la manière dont est enregistré les permissions (r, w, x) pour le propriétaire, groupe et les autres. Chaque droits (r,w,x) est associé à un bit, que l'on active ou pas. Si on active : - le premier bit x(exécution) vaut 1 (premier rang 2⁰ = 1) - le second bit w (écriture) vaut 2 (deuxième rang 2¹ = 2) - le troisième bit r(lecture) vaut 4 (troisième rang 2² = 4)
Comment vous le savez dès lors que l'on active un bit, la valeur de son rang s'ajoute aux autres rangs pour former une valeur totale. Par exemple : Mais si on active - r et w cela donne 4 + 2 = 6 - r et x cela donne 4 + 1 = 5 - w et x cela donne 2 + 1 = 3 - r, w et x cela donne 4 + 2 + 1 = 7
Un trio de permissions peut donc produire 8 valeurs possibles, de 0 (---) à 7 (rwx).
Comme ces huit valeurs se représentent naturellement par un seul chiffre en base 8, Unix a choisi l’octal pour coder les droits : la valeur octal décrit un trio r/w/x . On a donc trois bits successifs qui décrivent les droits du propriétaire, puis trois bits pour le groupe et et 3 bits pour les autres.
À ces trois catégories classiques - propriétaire, groupe et autres - s’ajoutent trois autres bits spéciaux (SUID, SGID et Sticky), destinés à régler certains comportements particuliers que l'on verra plus tard.
Voici le tableau complet: 
Premiers constats¶
Grâce à ls -l, vous pouvez dès maintenant :
- identifier qui possède un fichier
- vérifier à quel groupe il appartient,
- repérer qui a le droit de lire, écrire, exécuter un fichier ou d'accéder à un dossier,
Commandes utiles
ls -l # lire les droits, propriétaires et groupes ls -ld dossier # lire les droits du dossier lui-même stat fichier # afficher des informations détaillées
Travail demandé
1) A partir des commande que vous avez vu, remplissez le tableau suivant :
| Dossier | Propriétaire (user) | Groupe propriétaire | droits (user) | droits (group) | droits (others) | Problèmes détectés |
|---|---|---|---|---|---|---|
| /srv/commerciaux | ||||||
| /srv/commun | ||||||
| /srv/dev | ||||||
| /srv/direction | ||||||
| /srv/infra |
2) Lister les comptes présents sur le serveur.
3) Sont-ils cohérent avec la liste suivante?
| Service | Login | Nom complet | Fonction |
|---|---|---|---|
| DIR | mdupont | Marie Dupont | Directrice générale |
| DIR | acarlier | Antoine Carlier | Directeur général adjoint |
| COM | lroux | Laura Roux | Responsable commerciale |
| COM | sbernard | Sébastien Bernard | Chargé de clientèle |
| COM | jmartin | Julie Martin | Chargée de clientèle |
| DEV | nlambert | Nicolas Lambert | Lead développeur |
| DEV | tgarcia | Thomas Garcia | Développeur |
| DEV | dvasseur | Daniel Vasseur | Développeur |
| DEV | mthomas | Maëlle Thomas | Développeuse |
| DEV | lhenry | Loïc Henry | Développeur |
| INFRA | rduval | Romain Duval | Administrateur systèmes |
| INFRA | jmorel | Julie Morel | Technicienne systèmes |
4) Les comptes sont-ils associés à un groupe de service (métier) ?
5) Le script de backup est-il exécutable ?
6) Le catalogue commercial est-il modifiable par tout le monde ?
7) Le budget est-il lisible uniquement par la direction ?
8) Le README_infra.txt peut-il être modifié par un commercial ?
Warning
On ne peut pas réparer les accès aux dossiers métier tant que la structure des groupes n’existe pas.
Et encore moins tant que les bons utilisateurs ne sont pas associés aux bons groupes.
2) Association utilisateur -> groupe¶
Création des groupes métiers¶
Les services de TechCorp sont :
- DEV : développement
- INFRA : administration système et réseau
- COM : service commercial
- DIR : direction
Travail demandé
Créer les quatre groupes correspondants. Aucune option particulière n’est nécessaire : un groupe POSIX simple suffit.
Attacher un utilisateur à son groupe¶
Une fois les groupes créés, rattachez :
- chaque développeur au groupe DEV,
- chaque administrateur au groupe INFRA,
- chaque commercial au groupe COM,
- chaque membre de la direction au groupe DIR.
Travail demandé
Associez chaque utilisateur à son groupe primaire en modifiant son compte, pas en ajoutant un groupe secondaire.
3) Correction des droits POSIX¶
Avant de corriger les accès aux répertoires métiers, il faut savoir comment modifier les droits POSIX.
La commande chmod permet d’ajouter ou de retirer des permissions sur les trois ensembles : user, group, other.
Le principe est simple :
chmod +…ajoute un droit ;chmod -…retire un droit ;u,getodésignent respectivement le propriétaire, le groupe et les autres utilisateurs.
Par exemple :
chmod g+rajoute(+) la lecture(r) au groupe(g),chmod o-xretire(-) le droit d'exécution (si fichier) ou d'accès (si dossier) aux “other”(o),chmod u+wajoute(+) l’écriture(w) au propriétaire(u).chmod 640soit 6 →rw-pour le propriétaire, 4 →-r-et 0 →---pour les autres
Réparation de /srv/commerciaux/¶
Constat :
drwxrwxr-x 2 root root 4096 Dec 3 14:12 commerciaux
A priori il y a deux problèmes :
- le groupe propriétaire est
rootau lieu decom; - les permissions laissent entrer et lire tous les utilisateurs (
r-xpour others).
Cela signifie qu’un développeur, un admin ou même un invité peut parcourir ce dossier — ce qui est inacceptable pour notre directeur commercial .
Note n°1
La commande chown permet de modifier la propriétaire et le groupe propriétaire :
-
chown user fichier→ change le propriétaire -
chown :groupe fichier→ change le groupe propriétaire -
chown user:groupe fichier→ change les deux en même temps
Exemple : chown :invite /srv/stagiaire/ Remplace le groupe propriétaire actuel par le groupe invitepour le dossier /srv/stagiaire. Notez que cette commande n'est pas récursive (ne se propage pas aux répertoires avals). C'est possible, mais lisez la doc de chmod pour ça.
Note n°2
Seul le droit d'exécution (x) sur un dossier permet de franchir un dossier. Sans ce droit, le dossier représente une porte fermée pour ceux qui n'ont pas ce privilège.
Travail demandé
- Donner au groupe COM le contrôle du dossier
/srv/commerciaux/ - Restreindre totalement l’accès aux autres services
➜ Validez votre correction avec un utilisateur COM et un utilisateur non-COM.
Réparation de /srv/dev/¶
Appliquer exactement la même démarche pour /srv/dev/, cette fois en attribuant le groupe propriétaire DEV, puis en ajustant les droits pour que seuls les membres de ce groupe puissent entrer et travailler dans /srv/dev/.
Réparation de /srv/direction/¶
Réaliser la correction en attribuant le groupe propriétaire DIR.
Le répertoire de la direction doit être strictement réservé au groupe DIR, sans aucune permission pour les autres services.
Réparation de /srv/infra/¶
Corriger le répertoire en attribuant le groupe propriétaire INFRA.
Les administrateurs doivent être les seuls habilités à entrer dans /srv/infra/ et à modifier son contenu.
Sticky Bit¶
Le sticky bit, c’est un petit mécanisme utilisé uniquement sur les dossiers. Il sert à empêcher les utilisateurs de supprimer les fichiers des autres. C'est tout. Certains dossiers commun à plusieurs utilisateurs (droits en écriture pour tous), on veut permettre à chacun : - de déposer ses fichiers, - de modifier ses propres fichiers, - mais PAS de supprimer ou renommer ceux des autres**.
Correction du /srv/commun/¶
Les différents services disposent de documents dans /srv/commun/ mais visiblement
tout le monde peut supprimer n'importe quels fichiers.
Travail demandé
Activer le Sticky Bit sur ce dossier et corriger les droits pour que seul le propriétaire puisse supprimer ou modifier ses propres fichiers, les autres doivent avoir un accès uniquement en lecture.
Setgid¶
Cas d’usage (sauvegardes INFRA)¶
Dans le service INFRA, plusieurs administrateurs doivent pouvoir déposer, consulter, vérifier, déplacer ou supprimer des sauvegardes dans un dossier commun.
Sans setgid, chaque archive hériterait du groupe personnel de l’admin qui l’a créée, ce qui empêcherait les autres de la gérer.
En activant le setgid sur /srv/backup/, toutes les sauvegardes héritent automatiquement du groupe infra, ce qui permet à toute l’équipe de gérer le dossier de manière cohérente.
Travail demandé
Activer le setgid sur /srv/dev/ pour assurer un groupe unique DEV sur tous les fichiers.
Validation
Créer deux fichiers depuis deux comptes DEV → vérifier le groupe.
4) Document à rendre¶
Suite à ces incidents et manquements ayant conduit à l’exposition de données personnelles, la Direction vous charge de produire un document permettant de :
- établir un état des lieux factuel de la situation avant correction ;
- identifier les causes techniques et organisationnelles ;
- présenter les mesures correctives mises en œuvre ;
- démontrer que les accès sont désormais maîtrisés.
Ce document est a rendre sur moodle.
Barème de notation (note /20)
La note de ce TP n’évalue pas votre capacité à recopier les commandes vues dans le TP ou sur ChatGPT, mais sur la crédibilité de votre document. C'est donc votre capacité à aider la direction à comprendre la situation et à sortir de cette crise en vous appuyant sur ce TP ou d'autres sources.
Démarche attendue : Constater → Corriger → Vérifier → Rendre compte à la direction
Éléments recevables dans le document
- extraits ciblés et commentés de commandes système, par exemple :
getent passwdgetent groupls -lstat-
id utilisateur -
démonstration d’un accès autorisé ou refusé, en précisant : 1) le compte utilisé ; 2) la ressource concernée ; 3) le résultat obtenu ;
-
comparaison explicite avant / après une correction ;
- description factuelle d’un test d’accès (accès autorisé / permission denied) ;
- toute information permettant à un tiers de vérifier le constat sans interprétation.
Ne sont pas recevables :
- longues suites de captures d’écran ou d’imprimés écran en espérant que le prof fasse le tri pour vous ;
- L'absence de constats, de preuves ou de diagnostiques
- une liste de commandes sans explication;
- affirmations non démontrées (« les droits étaient incorrects », « problème de sécurité ») ;
- un constat sans fondement (dangereux, incohérent, mal configuré) ni preuve associée ;
- validations du type « testé, ça marche » ;
- tout élément reposant sur la confiance plutôt que sur un fait vérifiable.