我正在寻找在 python 中实现以下命令。su ${USER} -c "whoami"它只是创建在不同权限下运行的子进程,并将结果返回whoami给父进程。os.fork()当 bash 工作时,一旦 Chile 进程终止其工作,应该使用 while 将结果检索到父进程来完成。def runWhoamiOtherUser(self):
pid = os.fork() if pid == 0:
os.setuid(getpwnam(os.environ['USER'])[2])
x = getpass.getuser()
return x
pid, status = os.waitpid(pid, 0)这是正确的方法吗?
1 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
它已作为新功能添加到 Python 3.9 中的 subprocess 模块中的 subprocess.Popen 构造函数中:
3.9 版本中的新功能。
如果 user 不是 None,则在执行子进程之前,将在子进程中进行 setreuid() 系统调用。如果提供的值是字符串,则将通过 pwd.getpwnam() 查找该值,并使用 pw_uid 中的值。如果该值是整数,则将逐字传递。(仅限 POSIX)
在 3.9 之前,可能最好使用相同的 setreuid() 调用。如果您更喜欢用户的话,也可以使用相同的工具来更改组。
添加回答
举报
0/150
提交
取消