我正在运行一个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来设置子进程的环境,以便它作为另一个用户执行。