Heim > Backend-Entwicklung > PHP-Tutorial > Wie führe ich Root-Befehle von PHP unter CentOS aus?

Wie führe ich Root-Befehle von PHP unter CentOS aus?

Linda Hamilton
Freigeben: 2024-11-16 04:24:02
Original
197 Leute haben es durchsucht

How to Execute Root Commands from PHP on CentOS?

Root-Befehle über PHP ausführen

Sie haben den Wunsch geäußert, Befehle mit Root-Rechten aus Ihrem PHP-Code auf Ihrem CentOS-Server auszuführen. Lassen Sie uns das Problem untersuchen und mögliche Lösungen vorstellen.

Das Problem:

Sie haben versucht, die Funktion exec() zu verwenden, um den SSHD-Dienst neu zu starten, dies ist jedoch erforderlich Root-Zugriff, der dem Apache-Benutzer nicht gewährt wird. Sie haben zwar Lösungen wie das Ausführen von Apache mit Root-Rechten oder das Ändern Ihrer sudoers-Datei ausprobiert, das Problem wurde jedoch nicht behoben.

Lösung mit Binär-Wrapper (mit Suid-Bit):

  1. Erstellen Sie ein Shell-Skript: Beginnen Sie mit der Erstellung eines Skripts (z. B. php_shell.sh), das den Befehl enthält, den Sie als Root ausführen möchten.
  2. Eigentum und Berechtigungen festlegen: Stellen Sie sicher, dass der Root-Benutzer Eigentümer des Skripts ist und dass es über die folgenden Berechtigungen verfügt:

    • Eigentümer: Lesen, Schreiben, Ausführen (rwx)
    • Gruppe: Lesen, Ausführen (rx)
    • Andere: Lesen, Ausführen (rx)
  3. Binär-Wrapper erstellen: Erstellen Sie einen Binär-Wrapper, der Ihr Shell-Skript mit Root-Rechten ausführt. Hier ist ein Beispiel-Wrapper:

    # cat > wrapper.c <<CONTENT
    #include <stdlib.h>
    #include <sys/types.h>
    #include <unistd.h>
    
    int
    main (int argc, char *argv[])
    {
       setuid (0);
       system ("/bin/sh /path/to/php_shell.sh");
       return 0;
     }
    CONTENT
    Nach dem Login kopieren
  4. Berechtigungen kompilieren und festlegen: Kompilieren Sie den Binär-Wrapper und legen Sie ihn mit dem Suid-Bit fest:

    • Kompilieren: gcc wrapper.c -o php_root
    • Besitzer festlegen: chown root php_root
    • Berechtigungen festlegen: chmod u=rwx,go=xr, s php_root

Dieser php_root-Wrapper führt die in php_shell.sh angegebenen Befehle mit Root-Rechten aus, wenn er aufgerufen wird.

Alternative Lösung:

Anstatt zu verwenden Wenn Sie ein externes Shell-Skript verwenden, können Sie die Befehle direkt in den Binär-Wrapper einbetten. Ersetzen Sie einfach den Inhalt in Schritt 3 durch die Befehle, die Sie mit Root-Rechten ausführen möchten.

Achtung:

Es ist wichtig, absolute Pfade zu dem Skript zu verwenden, in dem Sie ausgeführt werden möchten Verhindern Sie, dass böswillige Benutzer die Binärdatei ausnutzen, um beliebige Befehle auszuführen.

Das obige ist der detaillierte Inhalt vonWie führe ich Root-Befehle von PHP unter CentOS aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage