Bonjour à tous,
Je vous explique mon objectif : je suis user1, sous Linux, et j'ai un script python qui à un moment donné doit exécuter des commandes en tant que user2.
je possède les mot de passes, des deux comptes et peut donc effectuer des chmod ou chown a volonté pour permettre de réaliser mon objectif. J'ai cependant tout essayé mais je n'y arrive pas je tombe tout le temps sur une erreur de permission denied :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 import os user2_uid=XXX os.setuid(user2_uid) os.system('whoami')mon souhait serait de lancer mon programme en tant que user1 et qu'après la commande os.setuid(user2_uid), le os.system('whoami') me donne user2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File "toto.py", line 3, in <module> os.seteuid(user2_uid) OSError: [Errno 1] Operation not permitted
J'ai essayé en positionnant le suid bit et le sgid bit, j'ai essayé de compiler le code python en pyc car il m'a semblé lire que ces bits ne peuvent être utilisés qu'avec du code compilé, j'ai essayé os.seteuid aussi, j'ai essayé en donnant le fichier.py à user2 etc.
A noter que user1 et user2 appartiennent au même groupe.
Si quelqu'un à une piste sur comment utiliser correctement os.setuid (en espérant que sa seule utilisation ne soit pas de root vers un autre utilisateur !) Merci.
Partager