Nottrott: Externes Programm aus PHP starten (Linux, Apache)

Hallo,

ich möchte aus einem PHP-Script heraus einen Bash-Befehl ausführen um zum Beispiel den Samba-Server mit "/etc/init.d/smb restart" neuzustarten (nur ein Beispiel).
Gibt es da Probleme mit den Sicherheitseinsellungen des Apache und wenn ja, wie kann ich die umgehen?
Um es nochmal klarzustellen, ich möchte das ganze nur auf meinem eigenen, privaten Server machen.

Bin für jede Hilfe dankbar,

Nottrott

  1. Hi,

    ich möchte aus einem PHP-Script heraus einen Bash-Befehl ausführen um zum Beispiel den Samba-Server mit "/etc/init.d/smb restart" neuzustarten (nur ein Beispiel).
    Gibt es da Probleme mit den Sicherheitseinsellungen des Apache und wenn ja, wie kann ich die umgehen?
    Um es nochmal klarzustellen, ich möchte das ganze nur auf meinem eigenen, privaten Server machen.

    Das sollte mit einem system() gehen, wenn der Apache auf dem Gleichen Rechner läuft wie der Bash-Befehl ausgeführt werden soll. Jedoch weiß ich nicht, ob du dazu extra Berechtigungen brauchst.
    Wenn du beispielsweise system("/etc/init.d/smb restart") machst müssen wohl nur die Rechte von /etc/init.d/smb richtig gesetzt sein.

    mfG,
    steckl

    1. Moin!

      Wenn du beispielsweise system("/etc/init.d/smb restart") machst müssen wohl nur die Rechte von /etc/init.d/smb richtig gesetzt sein.

      Nein. Der Useraccount, der das macht, muß die Rechte haben. Und das wird gewöhnlich nicht der Fall sein, ein stinknormaler User darf nicht relevante Services (die von anderen Usern genutzt werden) stoppen und neustarten. Das ist üblicherweise nur root vorbehalten.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
  2. Hellihello Nottrott,

    shell_exec() kennst Du? (Das Problem mit den Rechten könnte da aber auch bestehen). Oder wäre das direkte Ansprechen eines shell-scriptes über cgi-bin auch ein Alternative?

    Gruß,

    frankx