Notify mit Bash-Befehl funktioniert nicht

Begonnen von lynckmeister, 29 November 2020, 12:37:03

Vorheriges Thema - Nächstes Thema

lynckmeister

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?

Otto123

Hi,

was gibt Dir dieser Befehl in der FHEM Kommandozeile zurück?
{qx(ls -lha /home/pi/433/rfoutlet/codesend)}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

lynckmeister

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 ;)

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

lynckmeister

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 ;))

MadMax-FHEM

#6
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

lynckmeister

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 ...