如何检查我的Python脚本运行在BSD类似的操作系统下的pipe理员权限(sudo)? 需要显示用户友好的警告,以便在没有pipe理员权限的情况下执行。
这个怎么样? 检查是否为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
在类Unix操作系统中,唯一的“pipe理员”是uid = 0的root用户。 (可能有更多的用户具有相同的用户ID,他们都将具有相同的权限。)
所以最好的方法是:
import os if os.getuid() == 0: print("r00tness!") else: print("I cannot run as a mortal. Sorry.")
那个怎么样:
import os username=os.system("whoami") if username is not "root": print "You aren't root" else: print "Hello, "+username
不要试图将用户名与string“root”相匹配。
一般来说,您将不得不提供效率较低的标注以获取UID的文本表示,否则您将依赖可能不太可靠的环境variables。