让sudo通过GUI请求密码

时间:2012-04-23 15:03:21

标签: macos osx-lion sudo

我有一个在Mac上运行的lua脚本,需要调用sudo。

我希望Mac OS会自动显示密码请求对话框,但是通过返回256来命令失败。

无论如何我能实现目标吗?

1 个答案:

答案 0 :(得分:18)

快速简便的方法:像这样运行

/usr/bin/osascript -e 'do shell script "/path/to/myscript args 2>&1 etc" with administrator privileges'

正确且可配置的方式:使用授权服务中的AuthorizationExecuteWithPrivileges API(在Security.framework中)。

两者都会显示要求管理员密码的标准Mac OS X GUI,然后以root身份执行命令,与sudo相同,只是不会设置SUDO_USER个环境变量。

如果您需要在已升级到root用户帐户下执行单个命令,则可以在/usr/bin/sudo -u $USER之前添加它们。