我有一个在Mac上运行的lua脚本,需要调用sudo。
我希望Mac OS会自动显示密码请求对话框,但是通过返回256来命令失败。
无论如何我能实现目标吗?
添
答案 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
之前添加它们。