2017-05-05 46 views
0

我正在终端中运行以下命令。获取sudo以通过GUI询问密码

在/ usr/bin中/ osascript -e '做shell脚本 “/路径/到/的MyScript ARGS 2> & 1等” 具有管理员权限'

的问题是,该GUI被打开,询问密码,但它说osascript想进行更改。我想将osascript这个词改为我自己的单词。

什么是最佳解决方案?

回答

0

请求输入密码的对话框是osascript工具的一部分,您似乎无法更改它。您将不得不编写自己的GUI应用程序来提示输入密码,并使用提升的权限运行该命令。

+0

我有GUI,但我想问用户名和密码。我应该使用什么命令而不是上面的命令? –

+0

这是一个非常复杂的话题。我推荐https://developer.apple.com/library/content/documentation/Security/Conceptual/SecureCodingGuide/Articles/AccessControl.html –

+0

好的谢谢。我已经阅读了整个文档,但仍然无法完成 –

0

您可以使用expect命令来处理各种输入问题。

0

沿着这条线怎么样?

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类相比,唯一的缺点是你没有得到关于命令成功的任何信息,你只需要输出。