Mac OS X Python GUI管理员提示

Eri*_*ulf 4 python macos sudo authorization

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

我找到的最近的库是Bob Ippolito的授权库,但它已经过时,并且与Snow Leopard(OS X 10.6.4/Python 2.6.4)存在兼容性问题.

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

谢谢您的帮助!

Ben*_*Ben 5

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

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

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

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

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

希望有所帮助!

  • 有没有办法做到这一点,让用户只需要输入一次密码?如果我有其中几个,用户每次调用时都需要输入密码 (2认同)