Mac OS X Python GUI管理员提示

时间:2010-07-03 08:02:41

标签: python macos authorization sudo

我有一个OS X Python应用程序,它使用wxPython来实现它的GUI控件。我想在启动网络服务之前提示用户提供管理权限(类似于在Objective-C中使用授权服务API)。

我找到的最近的图书馆是Bob Ippolito的Authorization library,但它已经过时,并且与Snow Leopard(OS X 10.6.4 / Python 2.6.4)存在兼容性问题。

我的解决方法是创建一个Objective-C启动程序,它运行具有管理权限的python应用程序,但感觉相当糟糕。

感谢您的帮助!

4 个答案:

答案 0 :(得分:5)

如果它只是你需要运行的shell命令,请求提升权限,那么你可以这样做:

os.system("""osascript -e 'do shell script "<commands go here>" " with administrator privileges'""")

它将在applescript解释器中运行一个shell命令,并提示用户输入他们的帐户凭据;使用sudo有效地运行命令。

请注意,您可以在命令中转义引号,例如

os.system("""osascript -e 'do shell script "mkdir -m 0775 -p \\"%s\\" " with administrator privileges'"""%d)

希望有所帮助!

答案 1 :(得分:2)

您可以使用管理员权限运行整个脚本,方法是使用Platypus将其置于本机Mac OS X应用程序中。

答案 2 :(得分:1)

您可能需要查看此处发布的其他问题的答案:What kind of API should I use to elevate user privilege to super-user in a Mac OS X?

答案 3 :(得分:0)

这里是如何运行“ls”命令并询问密码

os.system("""
osascript -e 'do shell script "ls"  with administrator privileges'
""")
相关问题