Gibt es eine Möglichkeit mittels PHP(Apache2) eine Script (Python3 / BASH) auf einem Server auszuführen, welches nicht über die /etc/sudoers läuft sondern im Kontext eines Benutzers, also ohne sudo?
Bash-Python3-Script über PHP starten, welches nicht im Kontext von sudo läuft
Anmeldungsdatum: Beiträge: 226 |
|
||
Anmeldungsdatum: Beiträge: 180 |
Du kannst einfach einen Interpreter-Prozess starten und diesem das Script als Parameter mitgeben. Wieso es überhaupt im sudo-Kontext laufen sollte ist mir ein Rätsel! |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 226 |
Weil leider bis jetzt alle meine Versuche ein Script zu starten fehlgeschlagen sind!
Mir fehlt hier der Ansatz bzw. das Wissen!? Natürlich würde ich es gerne nur im eingeschränkten Nutzerkontext ausführen wollen! |
||
Anmeldungsdatum: Beiträge: 6345 Wohnort: Hamburg |
Ich habe mit PHP jetzt lange nicht mehr gemacht, aber Du kannst davon ausgehen, das alles was darüber gestartet wird, mit den Rechten von www-data passiert. Und das könnte auch schon das erste Problem sein, denn www-data hat keine Konsole und auch ein anderes Enrironment ($PATH). Bei meinen Versuchen mit Bash Scripten zur HTML Erzeugung, habe ich diese über die CGI Schnittstelle gestartet. Dazu musste ich dem Server (Lighttpd) aber noch mitteilen dass er diese Scripte überhaupt ausführen darf. Bekommst Du denn eine Fehlermeldung? |
||
Anmeldungsdatum: Beiträge: 11179 Wohnort: München |
Einfach PHP runterwerfen und das Backend komplett in Python schreiben, dann ist es kein Problem Python-Code auszuführen 😛
Immer mit absoluten Pfaden arbeiten bzw. überprüfen, ob das Arbeitsverzeichnis deines PHP-Skripts das ist, für das du es hältst.
Worauf du achten musst ist AppArmor und die PHP-Konfiguration - standardmäßig ist der Apache soweit ich das in Erinnerung habe recht restriktiv abgesichert und die Laufzeit und eventuell auch andere Ressourcen (wie der zur Verfügung stehende RAM) für PHP-Skripte (und die von ihnen ausgeführten Programme) beschränkt. Die Fehlermeldungen müsste man aber spätestens dann sehen, wenn man extensiv loggen lässt. |