【发布时间】:2012-04-23 15:03:20
【问题描述】:
我有一个在 Mac 上运行的 lua 脚本,需要调用 sudo。
我希望 Mac OS 会自动弹出密码请求对话框,但命令失败并返回 256。
有什么办法可以实现我的目标吗?
提姆
【问题讨论】:
我有一个在 Mac 上运行的 lua 脚本,需要调用 sudo。
我希望 Mac OS 会自动弹出密码请求对话框,但命令失败并返回 256。
有什么办法可以实现我的目标吗?
提姆
【问题讨论】:
快速简单的方法:像这样运行它
/usr/bin/osascript -e 'do shell script "/path/to/myscript args 2>&1 etc" with administrator privileges'
正确且可配置的方式:使用来自 Authorization Services 的 AuthorizationExecuteWithPrivileges API(在 Security.framework 中)。
两者都将显示标准 Mac OS X GUI 要求输入管理员密码,然后以 root 身份执行命令,与 sudo 相同,只是不会设置 SUDO_USER 环境变量。
如果您需要在已提升为 root 的情况下从用户帐户下执行单个命令,您可以在它们前面加上 /usr/bin/sudo -u $USER。
【讨论】: