Kurze Hilfe bei PHP und den Zugriff auf Shellcommands

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich wollte eben schnell meinen Aufbau vom einen pi zum anderen nachbauen (webinterface zum Steckdosensteuern)

    Dort habe ich eine .php welche auf eine .sh zugreifen soll. Diese .sh kann dann commands wie "reboot" oder ähnliches ausführen.
    Grundlage ist folgender Beitrag: Sudo Befehle mit PHP absetzen
    (gewisse Sicherheitsrisiken sind mir bewusst)


    Wenn ich die Bash direkt anspreche wird der Befehl korrekt ausgeführt:

    Code
    sudo /var/sudowebscript.sh REBOOT

    Wenn ich aber per Browser meine PHP öffne und dort den entsprechenden Aufruf starte, funktioniert nichts.
    In Grundzügen sieht meine PHP wie folgt aus:
    [code=php]<html>
    <body>
    <form method="post">
    <input type="submit" name="REBOOT" style="..." value="REBOOT"/>
    </form>
    <?php
    if (isset($_POST['REBOOT'])) {
    shell_exec('sudo /var/sudowebscript.sh REBOOT');
    }
    ?>
    </body>
    </html>[/php]

    Diese Struktur funktioniert auf meinem einen Pi2, allerdings nicht auf meinem anderen. Ich nehme an es liegt an irgendwelchen Rechten o.Ä. ?!
    Kann mir jemand helfen?

    Viele Grüße und danke schonmal!

    Einmal editiert, zuletzt von KAirAY (25. November 2016 um 11:39)

  • Kurze Hilfe bei PHP und den Zugriff auf Shellcommands? Schau mal ob du hier fündig wirst!

  • Code
    www-data ALL=NOPASSWD:/var/sudowebscript.sh

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] in [/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]/etc/sudoers[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] eingetragen?[/font]

    Einmal editiert, zuletzt von WaldiBVB (25. November 2016 um 11:44)

  • Mit Absicht beschreibe ich in dem Beitrag das man nicht shell_exec(); sondern exec(); nutzen soll :fies:

    Und zum bearbeiten der sudo Rechte soll man visudo verwenden - auch mit voller Absicht

  • Vielen Dank für die Antworten!

    WaldiBVB hat mich erwischt - das hab ich scheinbar vergessen!

    Und ich habe natürlich shell_exec(); zu exec(); geändert ;)
    Danke nochmal für Deinen tollen Beitrag!

    Kann dann jetzt zu, hat alles geklappt!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!