5 Stimmen

PHP die Ausführung eines Bash-Skripts mit Root-Rechten erlauben

Wie kann ich einem PHP-Skript erlauben, ein Bash-Skript mit Root-Rechten auszuführen?

Nehmen wir an, es gibt ein PHP-Skript...

<?php
// location: /var/www/script.php
exec("bash /var/scripts/test.sh"); // "sudo bash ..." does not work
?>

und ein Bash-Skript ...

#!/bin/bash
# location: /var/scripts/test.sh
sudo mkdir /test

Natürlich sollten PHP und Apache nicht als Root laufen und bestenfalls kann das Skript mit Root-Rechten ausgeführt werden. Irgendwelche Ideen?

Mit freundlichen Grüßen, Jimbo

0voto

MerlinTheMagic Punkte 545

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X