Sichere Websteuerung

    • Offizieller Beitrag

    Es gibt hier zwar bereits viele Themen über Web Steuerung des Raspberry, aber die Lösungen mit von root befehlen auf dem PI über shell_exec sind mir zu unsicher.

    Aus diesem Grund habe ich eine Lösung gesucht einen Befehl an meinen PI zu senden ohne direkt auf der Konsole zu Arbeiten. Meine Lösung dafür ist von der Webseite aus in eine Textdatei zu Schreiben, mit einem kleinen Bash Script auszulesen und daraufhin etwas auszulösen.

    Die Steuerung Zeige ich anhand einer LED, in meinem Fall hängt die LED an GPIO 9.
    Anstatt von LED Schaltung kann man auch jeden anderen Konsolen befehl wie z.b. "shutdown", "restart" oder das Steuern von Funksteckdosen Ausführen.

    Die Websteuerung:

    Code
    nano /var/www/index.php

    Datei mit "STRG + O" Speichern und nano mit "STRG + X" Schließen.

    Textdatei Erstellen

    Code
    touch /var/www/led.txt

    Rechte setzen:

    Code
    chmod 440 /var/www/index.php
    chmod 660 /var/www/led.txt


    Das Script zur Abfrage:

    Code
    nano /home/pi/LedStatus.sh

    [font="Tahoma, Verdana, Arial, sans-serif"]Mit "STRG + O" Speichern und nano mit "STRG + X" Schließen. [/font]

    Das durchgehend laufende Script ist keine schöne Lösung.

    Script zum Initialisieren des GPIO:

    Code
    nano /home/pi/led_init.sh

    [font="Tahoma, Verdana, Arial, sans-serif"]Mit "STRG + O" Speichern und nano mit "STRG + X" Schließen. [/font]

    Scripte Ausführbar machen:

    Code
    chmod +x /home/pi/led_init.sh
    chmod +x /home/pi/LedStatus.sh

    [font="Monaco, Consolas, Courier, monospace"]Script Ausführen mit [/font]

    Code
    bash /home/pi/LedStatus.sh

    Jetzt könnt ihr eure LED über eine kleine Webseite Steuern.

    Um das Script im Hintergrund laufen zu lassen kann man z.b. "screen" benutzen.

    Die Dateipfade sind natürlich nur Beispiele, ihr könnt diese nach belieben anpassen.


    //Das Forum hat meine schöne Formatierung gefressen :(

  • Ich verstehe den Sinn nicht, mal davon abgesehen das die /home/pi/LedStatus.sh mit Rootrechten gestartet werden muß und permanent läuft.

    Man kann auch /sys/class/gpio/ für www-data zum lesen/Schreiben freigeben oder ein Script was per shell_exec aus PHP aufgerufen wird in die sudoers eintragen oder WiringPI benutzen oder oder oder....

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    • Offizieller Beitrag

    Natürlich gibt es viele andere und vielleicht auch bessere Lösungen, für mich geht es hauptsächlich darum etwas selbst zu Entwickeln und nicht nur fertig Lösungen zusammen zu klicken. Ich möchte meine Webseite von meinem Script trennen. Das war auch der Grund wieso ich kein shell_exec benutzen wollte. Mit fertigen Anwendungen bin ich wieder an GPIO oder Funksteckdosen gebunden, ich möchte mit meinem Script aber auch jeden anderen Befehl Ausführen ohne eine neue Sicherheitslücke aufzureißen. Mein Script Fragt nur die werte aus der Textdatei ab und wenn die nicht passen läuft auch nichts.

    Natürlich ist das nicht die Perfekte Lösung, das behaupte ich auch gar nicht. Auf nachfrage einiger User habe ich meinen Lösungsansatz veröffentlicht.

Jetzt mitmachen!

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