我正在编写一个GUI程序,用于配置系统设置。为此,整个程序不应以root用户身份运行,否则它将为root用户配置系统。但是,有一个subprocess命令需要以root用户身份运行,由于以下原因,我不确定如何安全,正确地将其合并到GUI中。

  • 用户几乎必须将其输入到GUI前端。
  • 我不确定如何验证用户密码确实正确。如何添加错误校验以警告用户密码错误,而不仅仅是让命令失败。
  • 由于将涉及用户密码,因此如何安全地运行此操作。

  • 建议您创建一个守护程序,然后将命令传递给该守护程序。这似乎有点矫kill过正,因为它只是需要运行的一个命令。而且由于用户不能只在终端中键入它,所以它需要由GUI的前端处理。

    是否有人对如何合并此功能有其他想法?

    最佳答案

    您可以使用 pkexec

    例如:

    proc = subprocess.Popen(['/usr/bin/pkexec', command])
    

    关于python - 在python中以root身份运行子流程命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20930434/

    10-11 23:09
    查看更多