Я не знаю то, что соглашение здесь …
Таким образом, я хочу выполнить applescript: sudo osascript myscript.scpt
Это хорошо работает в терминале, но не, когда я выполняю его через PHP's 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
мог быть так или иначе устранен, я не думаю, что у меня была бы эта проблема полномочий.
Похоже, вам нужно настроить беспарольный sudo. Попробуйте:
%admin ALL=(ALL) NOPASSWD: osascript myscript.scpt
Также закомментируйте следующую строку (в /etc/sudoers через visudo), если она там есть:
Defaults requiretty