Python 程序的根身份验证

Root autentication on a Python program

我将 root 密码保存在一个变量中。如何在我的程序中授予 root 权限?

这可以作为一个例子:

password = "mypassword"
a = BeRoot(password)
if a == True:
    print("now you have become root user")

你不应该。
具有足够权限的用户应该 运行 该程序,如果它需要更多的权力。
Hard-coding 直接在你的文件中输入 root 密码是致命的,因为每个人都可以看到它。当然,您可以限制管理员的阅读权限,但无论如何他们都可以 运行 拥有足够权限的程序。

按照您尝试的方式是不可能做到的。您的程序已经在某些 non-root 用户下启动,您无法在此程序中更改它。您可以使用 sudo.

在 root 的名称下生成其他进程 运行
import os
os.popen("sudo -S somecommand", 'w').write("mypassword")

另请参阅 this question(截取代码的地方)。

尝试将您的 python 用户配置为无需密码即可执行 sudo

加入/etc/sudoers

gandalf ALL=(ALL) NOPASSWD: ALL

用合适的用户名替换 gandalf

在python

import os
os.system("sudo echo 'I am a root'")

sudo 在你想要 运行 作为 root

的任何命令之前