像Python中的其他用户一样运行一个进程

我正在运行一个脚本作为userA的根访问,从这个脚本我想做一个popen()调用,并运行一个不同的进程作为userB

os.setuid()似乎并没有为此工作(除非我这样做是错误的?),我想避免一个基于Linux的解决scheme,如su -userB -c <command>

当脚本以userA身份运行时,是否有一种运行进程为python的Python?

Solutions Collecting From Web of "像Python中的其他用户一样运行一个进程"

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

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