我正在使用Python在系统级Linux上做一个项目.所以,我想知道,如果我作为普通用户运行我的代码,如果我正在访问系统文件,那么它应该具有root权限,那么我如何提示root密码并以超级用户身份运行更多代码.我想知道,如何以超级用户身份运行python脚本,并提供密码提示.
任何帮助将不胜感激.先感谢您..
sam*_*ias 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
Run Code Online (Sandbox Code Playgroud)
输出:
Script not started as root. Running sudo..
[sudo] password for bob:
Running. Your euid is 0
Run Code Online (Sandbox Code Playgroud)
使用sudo -k进行测试,以清除所以下一次运行该脚本时它会再次需要密码,你的sudo时间戳.
import os
euid = os.geteuid()
if euid != 0:
raise EnvironmentError, "need to be root"
exit()
Run Code Online (Sandbox Code Playgroud)
这不会在脚本中间提示,而是强迫用户使用sudo或root用户重新运行它
| 归档时间: |
|
| 查看次数: |
13587 次 |
| 最近记录: |