“Opération non autorisée” sur l'utilisation de l'os.setuid( ) [python]

Je suis en train de construire une plate-forme pour lancer des scripts. Ces scripts sont placés dans le dossier home de chaque utilisateur. Chaque lancement doit être fait avec chaque id d'utilisateur donc, je suis en train de faire, pour chaque utilisateur, ceci:

user_id = pwd.getpwnam( user )[ 3 ]
user_home = pwd.getpwnam( user )[ 5 ]

os.chdir( user_home )
os.setuid( user_id )

subprocess.Popen( shlex.split( "user_script.py" ) )

Mais, quand python essaye de faire os.setuid( user_id ) il soulever cette exception:

Traceback (most recent call last):
  File "launcher.py", line XX, in <module>

OSError: [Errno 1] Operation not permitted

Par la manière, l'utilisateur qui lance ce script est à la racine de groupe (sur GNU/linux) et il a tous les privilèges root.

Si j'essaie de lancer le même code avec des super-utilisateur je reçois un autre message d'erreur:

OSError: [Errno 13] Permission denied

Si quelqu'un peut m'aider à comprendre ce qui se passe s'il vous plaît...

OriginalL'auteur carlesh | 2011-09-23