为了账号安全,请及时绑定邮箱和手机立即绑定

python os.fork() 用于在降级凭据下执行操作

python os.fork() 用于在降级凭据下执行操作

慕姐8265434 2023-08-08 17:42:21
我正在寻找在 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() 调用。如果您更喜欢用户的话,也可以使用相同的工具来更改组。

查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信