获取sudo通过GUI请求密码

时间:2017-05-05 16:10:19

标签: swift bash macos applescript sudo

我在终端中运行以下命令。

/ usr / bin / osascript -e'做shell脚本" / path / to / myscript args 2>& 1 etc"拥有管理员权限'

问题是GUI是为了询问密码而打开的,但它说 osascript 想要进行更改。我想把osascript这个词换成我自己的话。

什么是最佳解决方案?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分: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提示符,其中包含当前应用程序的名称(我在Cocoa应用程序中使用此命令)。与使用Process类相比,唯一的缺点是你没有获得有关命令成功的任何信息,你只需获得输出。