sudo в php должностном лице ()

Я не знаю то, что соглашение здесь …

Таким образом, я хочу выполнить 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 мог быть так или иначе устранен, я не думаю, что у меня была бы эта проблема полномочий.

41
задан icedwater 5 July 2013 в 01:12
поделиться

1 ответ

Похоже, вам нужно настроить беспарольный sudo. Попробуйте:

%admin ALL=(ALL) NOPASSWD: osascript myscript.scpt

Также закомментируйте следующую строку (в /etc/sudoers через visudo), если она там есть:

Defaults    requiretty
17
ответ дан 27 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: