Sécuriser sa session Linux
Droits utilisateur,
chmod,chown: premiers réflexes
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 :
- citer au moins 2 indices qui trahissent presque toujours un email de phishing
- quel réflexe permet de vérifier l'adresse réelle d'un lien, sans jamais cliquer dessus ?
- que faut-il faire en priorité si l'on a déjà saisi son mot de passe sur un faux site ?
📌 Réponse attendue
TP pour réfléchir et résoudre des problèmes
Votre défi pour aujourd'hui consiste à apprendre à lire et à modifier les droits d'accès à vos propres fichiers, sur votre serveur Linux
Étape 1 — Observer les permissions d'un fichier
Connectez-vous à votre serveur Linux, comme les semaines pr écédentes, puis créez un fichier de test dans votre dossier personnel :
cd ~
echo "Ceci est un fichier de test" > notes.txt
ls -l notes.txt
Vous obtenez une ligne qui ressemble à ceci :
-rw-r--r-- 1 etudiant etudiant 29 oct. 9 10:00 notes.txt
À partir de cette ligne, répondez :
- le propriétaire du fichier peut-il le lire ? peut-il le modifier ? peut-il l'exécuter ?
- les autres utilisateurs du serveur peuvent-ils le lire ? peuvent-ils le modifier ?
- que signifie le tout premier caractère de la ligne (le
-avantrw-r--r--) ?
📌 Réponse attendue
Étape 2 — Modifier des permissions avec chmod
Essayez les deux commandes suivantes, l'une après l'autre, en observant ls -l après chacune :
chmod u+x notes.txt
ls -l notes.txt
chmod 644 notes.txt
ls -l notes.txt
Que constatez-vous après chacune des deux commandes ? Expliquez la différence entre les deux façons
d'écrire des permissions (u+x et 644).
📌 Réponse attendue
Étape 3 — Protéger un fichier contenant un secret
Créez maintenant un second fichier, qui contient cette fois une information sensible :
echo "API_KEY=azerty1234" > secret.txt
ls -l secret.txt
Par défaut, ce fichier est créé avec les mêmes permissions que notes.txt à l'étape 1
(-rw-r--r--) : tout utilisateur du serveur peut donc le lire. Corrigez cela en donnant les
droits de lecture et d'écriture au seul propriétaire, et aucun droit à qui que ce soit d'autre.
Un fichier qui contient un mot de passe, une clé d'API ou tout autre secret doit presque toujours
avoir les permissions 600 (rw-------) : seul son propriétaire peut le lire et le modifier,
personne d'autre. Vous retrouverez ce réflexe très bientôt, avec les variables d'environnement.
📌 Une solution
Étape 4 — Comprendre chown, et pourquoi il nécessite presque toujours les droits root
chmod modifie les droits d'accès à un fichier. chown (change owner) modifie, lui, le
propriétaire du fichier. Essayez :
chown etudiant:etudiant secret.txt
Cette commande réussit sans rien changer (vous êtes déjà propriétaire). Essayez maintenant d'en changer réellement le propriétaire pour un autre utilisateur du serveur :
chown root:root secret.txt
Que se passe-t-il, et pourquoi, selon vous, cette seconde commande se comporte-t-elle différemment de la première ?
📌 Réponse attendue
Notions théoriques
Vous venez de manipuler, sans le savoir sous ce nom, l'un des mécanismes de sécurité les plus anciens et les plus utilisés de Linux : les permissions.
Trois catégories d'utilisateurs, trois droits
Chaque fichier ou dossier Linux définit des droits pour trois catégories d'utilisateurs :
| Catégorie | Symbole | Ce qu'elle désigne |
|---|---|---|
| Propriétaire | u (user) | L'utilisateur qui possède le fichier |
| Groupe | g (group) | Les membres du groupe associé au fichier |
| Autres | o (others) | Tous les autres utilisateurs du système |
Et pour chacune, trois droits possibles : lecture (r), écriture (w), exécution (x).
Sur un dossier, le droit d'exécution (x) a un sens particulier : il autorise à entrer dans ce
dossier (cd), pas à l'« exécuter » au sens d'un programme.
Lire une ligne ls -l
-rw-r--r-- 1 etudiant etudiant 29 oct. 9 10:00 notes.txt
| Partie | Signification |
|---|---|
- | Type d'élément (- = fichier, d = dossier) |
rw- | Droits du propriétaire (lecture, écriture, pas d'exécution) |
r-- | Droits du groupe (lecture seule) |
r-- | Droits des autres utilisateurs (lecture seule) |
etudiant (1er) | Nom du propriétaire |
etudiant (2e) | Nom du groupe |
Vous avez déjà décodé cette ligne par vous-même à l'étape 1 du TP.
La notation octale : additionner des valeurs
Chaque droit a une valeur : lecture 4, écriture 2, exécution 1. On additionne ces valeurs pour
chaque catégorie, ce qui donne un chiffre de 0 à 7 :
| Droits | Calcul | Chiffre |
|---|---|---|
rwx | 4+2+1 | 7 |
rw- | 4+2 | 6 |
r-x | 4+1 | 5 |
r-- | 4 | 4 |
--- | aucun droit | 0 |
chmod 644 fichier signifie donc : 6 (lecture + écriture) pour le propriétaire, 4 (lecture
seule) pour le groupe, 4 (lecture seule) pour les autres. C'est exactement ce que vous avez
observé à l'étape 2 du TP.
chmod 777 donne tous les droits à tout le monde. C'est presque toujours une mauvaise pratique :
un fichier ou un script avec cette permission peut être lu, modifié, voire remplacé par n'importe
quel utilisateur du système.
chown : changer de propriétaire, un geste d'administrateur
chown utilisateur:groupe fichier change le propriétaire (et éventuellement le groupe) d'un
fichier. Contrairement à chmod (que le propriétaire d'un fichier peut utiliser librement sur son
propre fichier), chown vers un autre utilisateur nécessite presque toujours les droits root
(sudo chown ...), exactement comme vous l'avez constaté à l'étape 4 du TP.
Vous retrouverez très bientôt ce même principe sous un autre nom : le principe du moindre privilège, qui consiste à ne jamais donner plus de droits que nécessaire, que ce soit à un fichier ou à un utilisateur.
Test de mémorisation/compréhension
Restitution orale
Un étudiant (ou un binôme) vient présenter au tableau sa démarche pour sécuriser le fichier
secret.txtde l'étape 3.
- Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
- Qui passe : un volontaire, sinon un tirage au sort.
- Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
- Ce qui est attendu :
- présenter la ligne
ls -lobtenue avant et après la correction des permissions (étape 3) ; - expliquer pourquoi
chown root:root secret.txta échoué à l'étape 4 ; - répondre aux questions de la classe.
- présenter la ligne
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.