Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Le droit minimal : qui peut faire quoi ?

Après cette leçon: Je peux expliquer comment une petite erreur de droits peut donner le contrôle d'une machine.

Leçon de 50 min4 commandesLab d’élévation de privilèges Linux : un binaire setuid, une règle sudo, une tâche cron

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

MotCe que ça veut dire
Droitsce qu'un compte a le droit de faire d'un fichier
Rootle compte de l'administrateur, qui peut tout faire
Droit minimalne donner que les droits nécessaires, pas plus
Élévation de privilègespasser d'un compte faible à un compte puissant
Permissionslire, é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

ChiffreDroitsCalcul
7lire, écrire, exécuter4 + 2 + 1
6lire, écrire4 + 2
5lire, exécuter4 + 1
4lire seulement4
0rien0

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

Commande
whoami

Affiché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

Commande
stat -c '%A %U' /etc/passwd

Affiché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

Commande
stat -c '%a %U' /root

Affiché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

Commande
stat -c '%a %U' /tmp

Affiché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

ErreurPourquoi c'est dangereuxLa bonne pratique
Un script que tout le monde peut modifier, lancé par rootN'importe quel compte y met ses commandes, root les exécuteLe script n'est modifiable que par root
Une règle d'administration trop largeUn compte faible lance en root un programme qui en lance d'autresAutoriser une seule commande précise
Un programme qui garde les droits de son propriétaireCelui qui le lance agit avec la puissance de son propriétairePeu 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.

À propos de ce labo et de sa source: Lab d’élévation de privilèges Linux : un binaire setuid, une règle sudo, une tâche cron

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.