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