我正在使用Python在系统级Linux上做一个项目。 所以,我想知道如果我以普通用户身份运行我的代码 如果我正在访问系统文件,那么它应具有root权限, 那我怎么能提示root密码并以超级用户身份运行更多代码。 我想知道,如何以超级用户身份运行python脚本并提供密码提示..
任何帮助将不胜感激。 提前谢谢..
答案 0 :(得分:27)
你可以做的另一件事是让你的脚本在没有以root身份执行的情况下自动调用sudo:
import os
import sys
euid = os.geteuid()
if euid != 0:
print "Script not started as root. Running sudo.."
args = ['sudo', sys.executable] + sys.argv + [os.environ]
# the next line replaces the currently-running process with the sudo
os.execlpe('sudo', *args)
print 'Running. Your euid is', euid
输出:
Script not started as root. Running sudo..
[sudo] password for bob:
Running. Your euid is 0
使用sudo -k
进行测试,清除sudo时间戳,以便下次运行脚本时再次需要密码。
答案 1 :(得分:5)
import os
euid = os.geteuid()
if euid != 0:
raise EnvironmentError, "need to be root"
exit()
这不会在脚本中间提示,而是强迫用户使用sudo或root用户重新运行它