检查python脚本中的pipe理权限

如何检查我的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。