oro*_*ome 0 macos applescript sudo
我有一个运行 shell 脚本的简单 AppleScript(应用程序):
do shell script "sudo killall -TERM java"
Run Code Online (Sandbox Code Playgroud)
失败并显示“ sudo no tty present and no Askpass program specified ”。
这里所需的行为是打开 OS X密码对话框(希望能够保存在钥匙串中以供将来使用),但是(我猜)我缺少一个步骤,告诉脚本启动必要的“ Asker”(令人惊讶的是,默认情况下不会发生)。
我试过了
do shell script "ssh-askpass Sudo Password | sudo killall -TERM java"
Run Code Online (Sandbox Code Playgroud)
但也会出现错误。
从 AppleScript 调用 OS X 密码拨号的正确方法是什么?
首选方法确实是:
do shell script "sudo killall -TERM java" with administrator privileges
Run Code Online (Sandbox Code Playgroud)
正如您所指出的,这不会让您记住钥匙串中的密码。这是故意的——钥匙串的目的是让您不必记住服务密码等,而不是破坏本地安全策略(这本质上就是您想要做的事情。
您可以通过使用security命令来存储和检索密码来伪造它(请参阅MacScripter中的讨论和示例代码)。您可以使用 提示输入密码Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer,尽管我不知道如何添加“记住钥匙串”复选框。这也引发了一些安全问题,因为我认为没有一种方法可以制定安全策略,允许您的脚本访问它而不提示用户确认,同时又允许其他脚本进行类似的访问。
| 归档时间: |
|
| 查看次数: |
4360 次 |
| 最近记录: |