web-dev-qa-db-ja.com

Python)とは異なるユーザーとしてプロセスを実行する

ルートアクセスでuserAとしてスクリプトを実行しています。このスクリプトから、popen()呼び出しを行い、userBとして別のプロセスを実行します。

os.setuid()はこれでは機能しないようです(これを間違って行っていない限り)。su -userB -c <command>などのLinuxベースのソリューションは避けたいと思います。

スクリプトがuserBとして実行されているときに、プロセスをuserAとして実行するPythonの方法はありますか?

14
EEP

次の答えはこれに対して本当に素晴らしいアプローチを持っています: https://stackoverflow.com/a/6037494/505154

そこには実用的なコード例がありますが、要約すると、subprocess.Popen()preexec_fnサブプロセスの環境をセットアップして、別のユーザーとして実行されるようにします。

9
Andrew Clark