在python脚本中检查管理员权限


15

如何检查我的python脚本是否在类似BSD的OS下以管理员权限(sudo)运行?需要显示用户友好的警告,以便在没有管理员权限的情况下执行该警告。

Answers:


37

这个怎么样?检查uid == 0

[kbrandt@kbrandt-admin: ~] python -c 'import os; print os.getuid()'
196677

[kbrandt@kbrandt-admin: ~] sudo python -c 'import os; print os.getuid()'
0

1
我实际上缩短了:-)。我同样使用open进行Linux身份验证,该身份验证通过对Windows SID进行哈希处理来创建大型UID。
凯尔·布​​兰特

3

那一个怎么样:

import os
username=os.system("whoami")
if username is not "root":
    print "You aren't root"
else:
    print "Hello, "+username

2

不要试图将用户名与字符串“ root”匹配。

通常,您将不得不提供效率较低的标注以获取UID的文本表示形式,或者您将依赖于环境变量,而这些变量可能并不那么值得信赖。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.