您好SO的人,
我正在编写一个shell脚本,它将更改某些系统首选项,例如HostName(scutil --set HostName),它需要权限提升才能处理.该脚本将在Platypus生成的应用程序中运行.
一旦我的脚本调用scutil(例如),我当然会让安全管理服务器提示我进行身份验证.
查看安全手册页有两个我感兴趣的标志:
security authorize
security execute-with-privileges
Run Code Online (Sandbox Code Playgroud)
另外从手册页我得到一个例子:
security -q authorize -uew my-right | security -q authorize -i my-right
Run Code Online (Sandbox Code Playgroud)
" 授权一个权限并将其传递给另一个命令,作为向shell脚本添加授权的方法. "
但是,我没有得到我想要的东西,我想我只是不明白如何正确使用它.有没有人有任何额外的见解?我搜索时发现的东西让我更加聪明.我很感激帮助:
使用Platypus标志运行脚本使用管理员权限运行仍然最终运行$ EUID不为0(零)的脚本.
我想,这意味着脚本以某种方式提升,但不是以root身份运行.如果工作,这个提升似乎不足以调用scutil --set HostName x,因为该命令仍然要求提供凭据.
如果需要进一步说明,请大声说!
提前致谢.
最好的问候,泰德