Unix "Echo" Kommando an ein Geräte senden

  • Moin zusammen,


    ich möchte gerne folgenden Befehl mit PHP absetzen.

    PHP
    <?php
    shell_exec("echo is0FFFF0FFFF10 > /dev/ttyUSB0");
    ?>


    Mein Webserver ist ein Lighttpd Server.
    Der Befehl bewirkt das meine ELRO Funksteckdose ausgeschaltet wird mit Hilfe eines angeschlossenen USB CUL Funk-Stick (868MHz).
    Leider passiert nichts.


    Da ich keine Root Rechte benötige oder sonstige Aktionen durchführe auf Dateiebene, verstehe ich nicht, warum ein einfaches Echo nicht funktioniert.


    Wenn ich den Befehl ls -la ausführe, bekomme ich aus dem aktuellen Verzeichnis, die Auflistung des Inhaltes. Das sagt mir, dass der Benutzer www-data shell_exec ausführen kann.


    Wäre sehr dankbar, wenn mir einer von euch einen Tip oder einen Lösungsansatz geben könnte.


    Danke im Voraus.
    Sven

  • Der Log wäre interessant: /var/log/lighttpd/error.log
    Oder auch andere Logs in /var/log/lighttpd/

    Es gibt KEINE dummen Fragen!

  • Danke für den Tipp mit dem Log. Das war sehr hilfreich.


    Ich habe mal den Echo Befehl aus dem Webseiten Verzeichnis ausgeführt. Sehr interessant.

    Code
    pi@RPi-HC /var/www/homecontrol/html/sites $ echo is0FFFF0FFFF11 > /dev/ttyUSB0
    -bash: /dev/ttyUSB0: Permission denied


    Jetzt muss ich nur dafür sorgen, dass ein Echo abgesetzt werden darf. Dachte bis heute, dass ein Echo jeder darf.


    Wo müsste man das denn einstellen?

  • PHP mit exec ergibt oft Rechte Probleme
    Kannst ja einmal in diesem Forum nach "php exec" suchen

    Es gibt KEINE dummen Fragen!

  • Upps, ich habe einen Fehler gemacht. Leider brachte die Korrektur auch nicht. Ich habe das falsche Device angesprochen.


    PHP
    <?php
    shell_exec("echo is0FFFF0FFFF11 > /dev/ttyACM0");
    ?>


    Jetzt kann es nur noch daran liegen, dass der Benutzer www-data den Befehl nicht ausführen kann.
    [hr]
    So, Lösung gefunden.


    Code
    sudo chown www-data.www-data /dev/ttyACM0


    Dadurch kann der Benutzer www-data jetzt das Gerät verwenden.

    Edited once, last by piro299 ().

  • [quote pid='54490' dateline='1388869674']

    Code
    sudo chown www-data.www-data /dev/ttyACM0


    Dadurch kann der Benutzer www-data jetzt das Gerät verwenden.
    [/quote]


    Hmm, als momentane Lösung zwar brauchbar, aber was, wenn mal nicht nur der Webserver darauf zugreifen soll?
    Besser wäre gewesen, den user www-data Mitglied in der entsprechenden Gruppe werden zu lassen.


    Gruß, mmi

  • Ok, guter Vorschlag.


    Nur alle /dev Geräte gehören dem Root.


    Da ich nur noch den Pi Benutzer habe, passt das.


    Denn in der Gruppe www-Data ist auch der Pi drin.


    Danke nochmal für den Tipp.


    Sven