18

我正在运行一个userA具有 root 访问权限的脚本,我想从这个脚本进行popen()调用并运行一个不同的进程作为userB.

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

userB在脚本运行时是否有运行进程的pythonic方式userA

4

1 回答 1

12

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

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

于 2012-12-11T18:43:58.747 回答