Comment Setuid permet aux utilisateurs d'exécuter des fichiers avec des privilèges élevés 1

Comment Setuid permet aux utilisateurs d’exécuter des fichiers avec des privilèges élevés

Lorsque vous exécutez un fichier exécutable sous Linux, il s’exécute généralement avec l’utilisateur et l’ID de groupe actuels. Cependant, il y a des moments où vous devez exécuter ce fichier en tant qu’autre utilisateur (comme root). Au lieu de changer de compte utilisateur, vous pouvez utiliser setuid pour exécuter l’exécutable en tant que propriétaire du fichier et non en tant qu’utilisateur actuel. Ici, nous expliquerons comment setuid fonctionne et comment il permet aux utilisateurs d’exécuter des exécutables/binaires avec des privilèges accrus.

Comment setuid fonctionne-t-il ?

Setuid signifie SET User ID à l’exécution. Disons que nous avons un exécutable appelé « identité » créé par l’utilisateur root. Lorsque vous l’exécutez, il s’exécutera avec votre ID d’utilisateur, votre ID de groupe et vos privilèges d’utilisateur. Si le bit setuid est défini sur le fichier « identité », lorsque vous l’exécutez, il sera exécuté en tant qu’utilisateur root et ses privilèges d’utilisateur.

À titre d’illustration, nous pouvons d’abord vérifier la propriété du fichier « identité » et vérifier qu’il appartient à l’utilisateur root. La chaîne d’autorisation affiche également les bits exécutables (x) définis pour l’utilisateur, le groupe et les autres.

L’utilisateur « john1 » exécute le fichier « identity », qui devient un processus à l’exécution. Comme indiqué dans la liste des processus, le processus est créé et exécuté sous le nom d’utilisateur et l’ID utilisateur « john1 ».

Setuid John Id Propriétaire

Ensuite, en tant qu’utilisateur root, nous définissons le bit setuid du fichier « identity » :

« u » indique que setuid bit (+s) doit être défini uniquement pour l’utilisateur.

Ensemble d'identité Setuid

Pour le propriétaire, dans la partie exécutable de la chaîne d’autorisation, nous pouvons voir que « x » a été remplacé par « s ». Chaque fois que vous rencontrez « s » pour un exécutable, cela signifie que le bit setuid a été défini dessus.

La variante numérique du chmod La commande peut également être utilisée comme indiqué ci-dessous.

L’ajout de 4 dans la chaîne d’autorisation numérique indique l’inclusion du bit setuid.

Voici ce qui se passe lorsque « john1 » exécute à nouveau le fichier « identity ». En regardant la liste des processus en cours d’exécution, nous pouvons maintenant voir que le processus est créé et exécuté par l’utilisateur « root » au lieu de « john1 ».

Setuid John Ids Propriétaire

Utilisation importante du bit setuid

La plupart du temps, des experts vous diront que vous ne devez pas exécuter d’applications en tant qu’utilisateur root. Cependant, il existe des cas où certains fichiers doivent être exécutés avec l’autorisation root. Par exemple, le passwd L’utilitaire installé par défaut sur les systèmes Linux a le bit setuid défini dessus.

La raison est simple : les informations de mot de passe d’un utilisateur sont stockées dans les fichiers « /etc/passwd » et « /etc/shadow », qui ne peuvent être modifiés que par « root ». Lorsque « john1 » tente de changer le mot de passe pour lui-même, il devra avoir l’autorisation de modifier les informations dans les deux fichiers susmentionnés. Avoir le bit setuid activé passwd permet à « john1 » d’avoir temporairement les autorisations root pour modifier le mot de passe de l’utilisateur et également mettre à jour les informations dans les deux fichiers.

Risque de sécurité Setuid

Si vous ne faites pas attention, un attaquant peut exploiter les binaires setuid pour contrôler votre système. Les utilisateurs ne devraient normalement pas avoir installé de programmes setuid, en particulier setuid pour des utilisateurs autres qu’eux-mêmes. Plus important encore, vous ne devriez pas avoir de binaire activé par setuid pour l’utilisateur root dans votre dossier Home. Ce sont généralement des chevaux de Troie ou des logiciels malveillants.

Conclusion

Setuid ne peut être défini que sur des fichiers exécutables. De même, le setgid bit peut également être défini, ce qui permet à tous les membres d’un groupe d’exécuter un exécutable avec des autorisations de propriétaire.

Notez que setuid et setgid Les bits sont sensibles à la sécurité et ne doivent être utilisés que par des administrateurs système qualifiés.

Lire la suite :

  • Comment utiliser Sticky Bit pour gérer des fichiers sur des répertoires partagés sous Linux
  • Comment faire des vérifications orthographiques dans le terminal Linux
  • Utilisation des commandes find, locate, which et whereis pour rechercher des fichiers sous Linux

Soutenez notre effort ❤️

Si vous avez apprécié cet article, pensez à laisser un pourboire pour nous aider à continuer à publier du contenu de qualité.

Paiement sécurisé sur PayPal
Moyens I/O Staff est une équipe de rédacteurs spécialisés, passionnés par la technologie, l’innovation et les usages numériques. Forts d’une expertise pointue en IA, applications mobiles, gaming et tendances digitales, nous produisons un contenu rigoureux, vérifié et utile. Notre mission : vous offrir une information fiable et claire pour mieux naviguer dans le monde numérique en constante évolution. Découvrez les avis de nos lecteurs sur Trustpilot.