我正在终端中运行以下命令。获取sudo以通过GUI询问密码
在/ usr/bin中/ osascript -e '做shell脚本 “/路径/到/的MyScript ARGS 2> & 1等” 具有管理员权限'
的问题是,该GUI被打开,询问密码,但它说osascript想进行更改。我想将osascript这个词改为我自己的单词。
什么是最佳解决方案?
我正在终端中运行以下命令。获取sudo以通过GUI询问密码
在/ usr/bin中/ osascript -e '做shell脚本 “/路径/到/的MyScript ARGS 2> & 1等” 具有管理员权限'
的问题是,该GUI被打开,询问密码,但它说osascript想进行更改。我想将osascript这个词改为我自己的单词。
什么是最佳解决方案?
请求输入密码的对话框是osascript
工具的一部分,您似乎无法更改它。您将不得不编写自己的GUI应用程序来提示输入密码,并使用提升的权限运行该命令。
您可以使用expect命令来处理各种输入问题。
沿着这条线怎么样?
let command = "do shell script \"/path/to/myscript args 2>&1 etc\" with administrator privileges"
let script = NSAppleScript(source: command)
let output = script?.executeAndReturnError(nil)
print(output)
这将运行命令,并显示一个GUI提示您当前应用程序的名称(我的可可应用程序使用此)。与使用Process类相比,唯一的缺点是你没有得到关于命令成功的任何信息,你只需要输出。
我有GUI,但我想问用户名和密码。我应该使用什么命令而不是上面的命令? –
这是一个非常复杂的话题。我推荐https://developer.apple.com/library/content/documentation/Security/Conceptual/SecureCodingGuide/Articles/AccessControl.html –
好的谢谢。我已经阅读了整个文档,但仍然无法完成 –