2012-04-23 47 views
11

我有一个在Mac上运行的需要调用sudo的lua脚本。让sudo通过GUI请求密码

我倒是希望的Mac OS会自动弹出一个密码请求对话框,而是它的命令通过返回256

失败,反正是有,我可以实现我的目标是什么?

回答

17

快速简便的方法:这样的

/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作为它们的前缀。

+0

太棒了,谢谢:) – tarmes 2012-04-23 15:34:59