Comprendre le SUID
Dans cette étape, vous allez comprendre le concept de la permission SUID et ses implications.
En général, lorsqu'un programme est exécuté sur Linux, il s'exécute avec les permissions de l'utilisateur actuel. Cependant, certains programmes, comme cp
, nécessitent des privilèges élevés pour effectuer certaines opérations, telles que copier des fichiers dans des répertoires restreints. Pour permettre aux utilisateurs normaux d'exécuter de tels programmes avec des privilèges élevés, la permission SUID peut être définie sur le fichier exécutable.
SUID signifie "Set user ID upon execution" (Définir l'identifiant utilisateur à l'exécution). Lorsqu'un fichier a la permission SUID définie, il s'exécute avec les permissions de son propriétaire, quel que soit l'utilisateur qui l'exécute. Par exemple, la commande cp
est propriété de l'utilisateur root et a le bit SUID défini, ce qui permet à tout utilisateur de l'exécuter avec les privilèges root.
Pour vérifier la permission SUID sur la commande cp
et enregistrer la sortie dans un fichier, exécutez la commande suivante :
ls -l /usr/bin/cp > /home/labex/project/suid_cp.txt
Affichez le contenu du fichier suid_cp.txt
en utilisant la commande suivante :
cat /home/labex/project/suid_cp.txt
Sortie attendue :
-rwsr-xr-x 1 root root 141832 Feb 8 2024 /usr/bin/cp
Vous devriez voir un s
dans les bits de permission, indiquant la permission SUID.
Bien que le SUID puisse être utile pour permettre aux utilisateurs normaux d'exécuter des commandes privilégiées spécifiques, il peut également être exploité si le binaire SUID offre des fonctionnalités pour exécuter des commandes système ou modifier des fichiers.