我正在运行具有root访问权限的userA
脚本,我希望通过此脚本进行popen()
调用,并以userB
运行其他流程。
os.setuid()似乎不适用于此(除非我做错了吗?),我想避免使用基于linux的解决方案,例如su -userB -c <command>
当脚本以userB
运行时,是否存在以userA
运行流程的pythonic方式?
答案 0 :(得分:9)
以下答案有一个非常好的方法:https://stackoverflow.com/a/6037494/505154
那里有一个工作代码示例,但摘要是使用subprocess.Popen()
和preexec_fn
来设置子进程的环境,以便它作为另一个用户执行。