Comprendre les fichiers setuid sous Linux
Les fichiers setuid sont particuliers car ils possèdent des permissions spécifiques qui permettent à un utilisateur d’exécuter ce fichier avec les privilèges du propriétaire du fichier. Cela peut donner accès à des fonctions sensibles du système, en rendant certaines manipulations possibles sans nécessiter l’identité de l’utilisateur exécutant le fichier. Comprendre cela est essentiel pour maintenir la sécurité de votre système Linux.
Qu’est-ce que le setuid et comment fonctionne-t-il ?
Le terme setuid (set user ID) désigne un bit spécial d’autorisation qui, lorsqu’il est activé sur un exécutable, permet à celui qui l’exécute de bénéficier des permissions du propriétaire du fichier. Par exemple, si un utilisateur exécute un programme ayant le bit setuid activé et que ce programme appartient à l’utilisateur root, il obtiendra temporairement les droits de l’utilisateur root pendant l’exécution de ce programme. Cela crée des opportunités pour exécuter des tâches qui nécessitent des privilèges élevés.
Aperçu des permissions SGID
Le bit SGID (Set Group ID) fonctionne de manière similaire au setuid, mais cela concerne les permissions de groupe. Lorsqu’un fichier exécutable ou un dossier a le bit SGID activé, le groupe du fichier s’applique à tous les fichiers créés par des utilisateurs qui exécutent ce programme. Cela peut faciliter certaines collaborations en matière de permissions lorsqu’il y a un groupe de travail spécifique.
Où sont les fichiers setuid Linux ?
Pour identifier les fichiers avec les permissions setuid sur votre système Linux, vous pouvez utiliser la commande find
. Cette commande recherche les fichiers avec des caractéristiques spécifiques dans les répertoires, y compris la racine. Voici comment procéder :
- Ouvrez un terminal sur votre système.
- Exécutez la commande suivante pour localiser tous les fichiers avec le bit setuid activé :
find / -type f -perm /4000
. Cette commande cherche les fichiers (`-type f`) à partir de la racine (`/`) et affiche ceux ayant les permissions setuid (`-perm /4000`).
Il est recommandé d’exécuter cette commande avec des privilèges administratifs (en tant que super-utilisateur) pour accéder à tous les répertoires, surtout si vous cherchez sur le système entier.
Vérification des permissions d’un fichier
Pour consulter les permissions d’un fichier spécifique, la commande suivante vous permettra d’afficher les droits d’accès associés :
- Utilisez la commande
ls -l
suivie du nom du fichier. Cela affichera des détails sur les permissions, le propriétaire, et le groupe, par exemple :ls -l nom_fichier
. - Regardez le premier caractère pour savoir si le bit setuid est activé. Si vous voyez un ‘s’ dans la section des permissions utilisateur, cela indique que setuid est actif.
Utilisation de la commande find pour des recherches avancées
D’autres utilisations de la commande find
peuvent être employées pour simplifier votre recherche de fichiers. Vous pouvez, par exemple, combiner les options pour chercher des fichiers setuid et SGID simultanément :
find / -type f ( -perm /4000 -o -perm /2000 )
Cela va retourner tous les fichiers qui ont soit les permissions setuid soit les permissions SGID.
FAQ sur les fichiers setuid
Pourquoi certains fichiers sont-ils marqués comme setuid ?
Les fichiers sont marqués setuid pour permettre à des programmes spécifiques d’effectuer des tâches qui requièrent des privilèges d’utilisateur particulier, comme le programme passwd
qui permet de changer le mot de passe en bénéficiant des droits d’accès nécessaires.
Comment sécuriser mon système par rapport aux fichiers setuid ?
Pour sécuriser votre système, il est important d’effectuer des audits réguliers des fichiers setuid. Vous devez être sûr que seuls les fichiers nécessaires ont cette permission et que d’autres fichiers n’ont pas été mal configurés, ce qui pourrait rendre votre système vulnérable.
Quelles sont les alternatives au setuid ?
Lorsque le setuid présente des problèmes de sécurité potentiels, d’autres méthodes peuvent être utilisées, comme les scripts de configuration d’accès ou des systèmes de permission alternatifs comme sudo, qui permettent d’exécuter des commandes avec des permissions différentes tout en recommandant une meilleure gestion des droits d’accès.