以与Python不同的用户身份运行进程

时间:2012-12-11 17:48:01

标签: python linux popen

我正在运行具有root访问权限的userA脚本,我希望通过此脚本进行popen()调用,并以userB运行其他流程。

os.setuid()似乎不适用于此(除非我做错了吗?),我想避免使用基于linux的解决方案,例如su -userB -c <command>

当脚本以userB运行时,是否存在以userA运行流程的pythonic方式?

1 个答案:

答案 0 :(得分:9)

以下答案有一个非常好的方法:https://stackoverflow.com/a/6037494/505154

那里有一个工作代码示例,但摘要是使用subprocess.Popen()preexec_fn来设置子进程的环境,以便它作为另一个用户执行。