我不知道这里的交易是什么……
所以我想运行一个applescript: sudo osascript myscript.scpt
这在终端中工作正常,但当我通过 PHP 的 exec()
执行它时却不行;什么都没发生。控制台说
no tty present and no askpass program specified ; TTY=unknown ; …
我做了研究,似乎我缺少 sudo
命令的密码。我尝试了几种不同的方法来解决这个问题,包括:
- 在 中写入
%admin ALL=(ALL) ALL
/etc/sudoers
- 和
proc_open()
而不是exec()
这些似乎都不起作用,因此让我发疯!
所以基本上,有没有一种明确的方法让 PHP 执行一个简单的终端命令?
编辑:澄清一下, myscript.scpt
是一个简单的appleScript,它改变了屏幕UI(对于一个更大的项目)。理论上,简单的 osascript myscript.scpt
就足够了,但是 sudo
出于某种原因需要从系统调用 一些 响应。如果 sudo
可以以某种方式消除,我认为我不会遇到这个权限问题。
原文由 pop850 发布,翻译遵循 CC BY-SA 4.0 许可协议
听起来您需要设置无密码 sudo。尝试:
如果存在以下行(通过 visudo 在 /etc/sudoers 中),还要注释掉: