Pourquoi limiter les droits de chacun ?
Le principe du droit minimal dit qu'un compte ou un programme ne reçoit que les droits dont il a besoin, et pas un de plus. Une erreur de droits, même petite, peut donner à un intrus le contrôle de toute la machine.
Aujourd'hui, tu apprends à lire les droits d'un fichier et à repérer ceux qui sont trop larges.
À la fin de cette leçon
Remarque
Je peux expliquer comment une petite erreur de droits peut donner le contrôle d'une machine.
Mots clés
| Mot | Ce que ça veut dire |
|---|---|
| Droits | ce qu'un compte a le droit de faire d'un fichier |
| Root | le compte de l'administrateur, qui peut tout faire |
| Droit minimal | ne donner que les droits nécessaires, pas plus |
| Élévation de privilèges | passer d'un compte faible à un compte puissant |
| Permissions | lire, écrire, exécuter : les trois droits d'un fichier |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
La règle de ce lab
Important
Tu travailles seulement dans ta propre machine privée, avec la permission de ton enseignant. Ne tente jamais de prendre des droits sur une machine qui n'est pas à toi : c'est une infraction. On apprend comment les droits sont détournés pour les régler mieux.
Comment lire les droits d'un fichier ?
Un fichier a trois droits : lire (r), écrire (w) et exécuter (x). Ils sont donnés à trois groupes : le propriétaire, son groupe et tous les autres.
On écrit les droits avec trois chiffres, un par groupe. Chaque droit a un poids : lire vaut 4, écrire vaut 2, exécuter vaut 1. On additionne.
Exemple : lire un nombre de droits
| Chiffre | Droits | Calcul |
|---|---|---|
| 7 | lire, écrire, exécuter | 4 + 2 + 1 |
| 6 | lire, écrire | 4 + 2 |
| 5 | lire, exécuter | 4 + 1 |
| 4 | lire seulement | 4 |
| 0 | rien | 0 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Avant de commencer
Remarque
Appuie sur Start the lab et attends que la machine soit prête. Dans cette leçon, tu lis seulement des droits. Tu ne changes aucun droit : le lab te demandera ensuite de chercher les erreurs de la machine.
Demande sous quel compte tu travailles
whoamiAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis les droits de la liste des comptes
stat -c '%A %U' /etc/passwdAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis les droits du dossier de root
stat -c '%a %U' /rootAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis les droits du dossier temporaire
stat -c '%a %U' /tmpAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Que disent ces droits ?
La liste des comptes est lisible par tous mais modifiable par root seul : rw-r--r--. Le dossier de root est en 700 : lui seul y entre.
Le dossier temporaire est en 1777 : tout le monde y écrit, et le 1 devant empêche d'effacer le fichier d'un autre. C'est un cas voulu, avec une protection.
Qu'est-ce que le droit minimal ?
Le compte root peut tout lire, tout changer et tout effacer. Si un intrus l'atteint, la machine est à lui.
Le droit minimal consiste à donner à chaque compte et à chaque programme juste ce qu'il lui faut. Une élève qui lit ses notes n'a pas besoin d'écrire dans les fichiers du système.
Exemple : trois erreurs de droits, en général
| Erreur | Pourquoi c'est dangereux | La bonne pratique |
|---|---|---|
| Un script que tout le monde peut modifier, lancé par root | N'importe quel compte y met ses commandes, root les exécute | Le script n'est modifiable que par root |
| Une règle d'administration trop large | Un compte faible lance en root un programme qui en lance d'autres | Autoriser une seule commande précise |
| Un programme qui garde les droits de son propriétaire | Celui qui le lance agit avec la puissance de son propriétaire | Peu de programmes de ce genre, et surveillés |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent qu'un compte simple ne peut rien casser. C'est faux si un fichier lancé par un compte puissant est modifiable par tous. Les droits de chaque fichier comptent, pas seulement les droits du compte.
Pour aller plus loin : corriger
Un audit trouve les erreurs, puis on les corrige. Pour un fichier modifiable par tous qui n'a pas à l'être, on enlève le droit d'écriture aux autres.
Quel nombre de droits donnerais-tu à un fichier dont le propriétaire a tous les droits, le groupe peut seulement lire, et les autres n'ont rien ? Réponds avec trois chiffres.