Ich habe kürzlich ein Projekt veröffentlicht, das es PHP ermöglicht, eine echte Bash-Shell zu erhalten und mit ihr zu interagieren (auf Wunsch als Root). Es löst die Einschränkungen von exec() und shell_exec(). Holen Sie es sich hier: https://github.com/merlinthemagic/MTS
Nach dem Herunterladen verwenden Sie einfach den folgenden Code:
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1 = $shell->exeCmd('/my/bash/script.sh');
//the return will be a string containing the return of the command
echo $return1;
In Bezug auf die Sicherheit ist dies weitaus besser als der Betrieb von Apache als Root. Aber PHP in der Nähe von Root laufen zu lassen, ist immer heikel.
Das Projekt, das ich gebaut habe, erreicht eine Root-Bash-Shell auf eine von 2 Arten:
1) Sie geben dem Apache das Recht, sudo python zu verwenden.
OR
2) Sie übergeben dem Objekt jedes Mal die Root-Zugangsdaten, wenn Sie eine Shell mit Root-Einrichtung benötigen.
Wählen Sie Ihr Gift :) Lesen Sie die Dokumentation.