如何在Mac OS X中以Python身份运行命令?

时间:2011-10-10 15:55:15

标签: python macos sudo

在我的Python GUI应用程序中,我必须以root身份运行命令来执行某个操作(具体来说,它在系统范围内安装Python模块)。在Linux上,我只是使用gksudo或kdesu作为传递给subprocess.Popen()的命令的前缀。不幸的是,似乎没有Mac等价物。在指向一些名为BetterAuthorizationSample的复杂Objective-C代码之前,我已经看到过这个问题...我真的不了解它,并且不愿意编写Objective-C代码来完成这个简单的任务。如果有一种更简单的方法,我想知道。我想我可以创建自己的密码对话框并将其传递给stdin上的常规命令行sudo。

2 个答案:

答案 0 :(得分:1)

我不知道如何提升您的权限,但您可以使用一些AppleScript来索取密码。有关示例,请参阅https://github.com/apenwarr/sshuttle/blob/master/ui-macos/askpass.py

答案 1 :(得分:0)

我还没有找到最佳解决方案,但我刚刚发布了我目前正在使用的解决方案here

它使用osascript以root权限重新启动自己。