Hi Forum,
ich habe hier ein Notify das auf das Einschalten einer Lampe reagieren soll und einen Shell-Befehl abschicken soll ...
es sieht so aus :
define GZ_Lampe_On notify GZ_Lampe:on "/home/pi/433/rfoutlet/codesend -p3 4462339"
auf einer älteren (Jessi) Fhem installation hat das problemlos so funktioniert. .. hier passiert leider nix. Der Befehl lässt sich über die CMD Zeile genauso ausführen.
Die Rechte an dem Pfad und Befel sind aktuell alle auf PI, aber auch wenn ich das command mit sudo ausführe geht es aus FHEM nicht...
Jemand eine Idee?
Hi,
was gibt Dir dieser Befehl in der FHEM Kommandozeile zurück?
{qx(ls -lha /home/pi/433/rfoutlet/codesend)}
Gruß Otto
ich hab einfach mal mit sudo journalctl -f geschaut, was da so vom system ausgegeben wird, und habe darauf den hinweis gesehen, dass FEHM keine Sudoers Berechtigung hat.
Naja dann kurz gegoogled und auf Otto ist ja nun mal verlass:
https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html
Hier geht es zwar um was anderes , aber im Prinzip genau mein Problem , ich musste FHEM erstmal die Rechte geben , um meine Dateien auszuführen, dazu habe ich wie in dem Artikel beschrieben ein Sub-file angelegt und mir da die Rechte für FHEM entsprechend zu den Befehlen eingeräumt.
Danke Otto ;)
Besser wäre es die Dateien dort abzulegen wo der User eh schon die entsprechenden Rechte hat:
User fhem: /opt/fhem (das ist das "Homedir" von fhem)
User pi: /home/pi (das ist das "Zuhause" von pi ;) )
Was du getan hast: jedesmal, wenn fhem eine Datei in /home/pi ausführen soll, holt sich User fhem den General-Schlüssel (sudo) und "bricht" in das Haus vom User pi ein...
Wenn die Dateien in /opt/fhem (also dem "Zuhause" vom User fhem) mit entsprechenden Besitzrechten (wie alle anderen Dateien dort auch) liegen würden, hättest du DAS Problem nicht.
Wenn du allerdings IN den Dateien auch sudo Kommandos drin hast ODER die Dinge IN den Scripten root-Rechte brauchen, dann ist evtl. mal drüber nachzudenken, ob das so muss ;)
Nur meine Meinung zu diesem "Problem" hier...
Gruß, Joachim
Ich denke ja, Du hast jetzt eventuell etwas zuviel gemacht.
Braucht der Befehl an sich denn sudo? Oder hast Du Dir jetzt das Recht, die Datei auszuführen über diesen Umweg geholt?
Deswegen hätte ich ja gern gewusst, welche Rechte der user fhem jetzt an dieser Datei hat :)
Gruß Otto
ne du hast natürlich recht, sudo braucht er eigentlich nicht, der Befehl "gehörte" nur eben dem User PI und nicht Fhem, aber ich habe ihm jetzt fhem rechte gegeben und dann kann man sich sudo sparen.. trotzdem war dein Beitrag hilfreich, jetzt kann ich auch den Server über die App reseten ;))
Zitat von: lynckmeister am 02 Dezember 2020, 17:18:09
...der Befehl "gehörte" nur eben dem User PI und nicht Fhem, aber ich habe ihm jetzt fhem rechte gegeben und dann kann man sich sudo sparen..
Wie hast du denn die Rechte vergeben?
"Zugriffsrechte aufgebohrt"?
Sowas wie: sudo chmod 777 Dateiname?
Oder: sudo chmod 666 Dateiname?
Sowas "durchbricht" das normale Besitzrechte/Zugriffsrechte-System von Linux...
Sollte man vermeiden...
Weil (wie geschrieben) es besser ist die Datei dort hin zu legen wo eben der jeweilige User auch zugreifen darf...
Also für den User fhem eben nach: /opt/fhem/...
Dann reicht es auch, wenn der Besitzer (fhem) und evtl. noch die Gruppe des Users fhem "alles" darf, andere aber max. "kucken" dürfen...
Aber: dein System... ;)
Gruß, Joachim
nein es sind ja selbst kompilierte Binaries, ich habe den user Fhem zum Owner gemacht und das x bit gesetzt , damit kann fhem die Datei auch ausführen ...