Ich weiß nicht, was das Geschäft hier ist ...sudo in PHP exec()
Deshalb möchte ich ein Applescript auszuführen: sudo osascript myscript.scpt
Dies funktioniert im Terminal in Ordnung, aber nicht, wenn ich es ausführen über PHP's exec()
; nichts passiert. Die Konsole sagt
no tty present and no askpass program specified ; TTY=unknown ; …
ich meine Forschung getan hat, und es scheint, ich bin das Passwort für den sudo
Befehl fehlt. Ich habe versucht, ein paar verschiedene Möglichkeiten, dies zu umgehen, einschließlich:
%admin ALL=(ALL) ALL
in/etc/sudoers
- und
proc_open()
stattexec()
von denen keine zu schreiben scheinen folglich zu arbeiten, mich verrückt!
Also gibt es im Grunde eine klare Möglichkeit, um PHP einen einfachen Terminal-Befehl ausführen zu lassen?
EDIT: Um zu klären, ist myscript.scpt
ein einfaches Applescript, die in der Online-Änderungen an der Benutzeroberfläche (für ein größeres Projekt). In der Theorie sollte einfach osascript myscript.scpt
genug sein, aber die sudo
ist aus irgendeinem Grund notwendig, einige Antwort vom System aufzurufen. Wenn die sudo
irgendwie beseitigt werden könnte, glaube ich nicht, dass ich dieses Erlaubnisproblem haben würde.
Es gibt Möglichkeiten, dies zu beheben, aber der beste Weg ist wahrscheinlich zu machen, dass "myscript.script" ohne Root-Rechte ausgeführt wird. – Stephen
Irgendwie ist das technisch eine schlechte Idee. Entweder geben Sie PHP Zugriff auf sudo, ohne ein Passwort zu benötigen, oder Sie verwenden ein setuid-Hilfsskript, das immer mit root-Rechten ausgeführt wird. Keiner ist bei einem PHP-Frontend ziemlich gesund. Können Sie Ihre Frage aktualisieren, um uns zu sagen, was "myscript.scpt" tatsächlich leistet? –
Frage aktualisiert – pop850