Reboot button / exec.whitelist

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
itsego1990
Beiträge: 14
Registriert: 21. Nov 2017 23:27
Answers: 1
Wohnort: BW

Reboot button / exec.whitelist

Beitrag von itsego1990 »

Hi,

Ich nutzt einen raspberry PI 4 mit Openhab 2.5.6-2 , vor dem Update nutzte ich OP 2.5.5-1
Nun ist es so das ich in meiner Oberfläche bzw. in OP einen Button habe um den Raspberry PI / Openhab neustarten kann.
Die Buttons hatte ich nach anleitung von dieser HP erstellt -> https://smarthome-training.com/de/openh ... usfuehren/
Hat auch alles Funktionert bis zum Update auf 2.5.6-2, da diese Funktion über das exec binding realsiert wird, und bei Exce binding nun eine Withelist benötigt wird, funktioniert das ganze nicht mehr.

Also habe ich nun nach dem Update im Openhab-config ordner zwischen dem Items und presistence ordner den ordner misc, eingefügt und eine datei mit dem Name exec.whitelist erstellt.

In die exec.whitelist

hab ich dann eingetragen:

sudo /bin/systemctl %2$s openhab2.service
sudo %2$s


wenn ich den button drücke steht in der Log dann:

2020-07-05 20:04:51.975 [ome.event.ItemCommandEvent] - Item 'PI_Service' received command reboot

2020-07-05 20:04:52.030 [nt.ItemStatePredictedEvent] - PI_Service predicted to become reboot

==> /var/log/openhab2/openhab.log <==

2020-07-05 20:04:52.041 [WARN ] [ng.exec.internal.handler.ExecHandler] - Tried to execute 'sudo %2$s', but it is not contained in whitelist.


ich versteh nicht ganz warum der Befehl nicht angenommen wird, den ich hab ihn ja in die liste eingetragen.
Im Internet hab ich auch schon gesucht aber eine lösung hab ich nicht gefunden bisher dazu, da ich ja kein script in einer anderen externen datei habe.
von itsego1990 » 6. Jul 2020 01:06
Danke für deine Idee leider brauche ich sie nun nicht mehr , denn es nun Funktioniert kommisch weise.
Mit diesem eintrag in der exec.withelist funktoinert es :

sudo %2$s
sudo /bin/systemctl restart openhab2.service


Es hätte ja von anfang an so Funktionieren müssen, ich hatte mein system schon min. 5mal in der Putty console neu gestartet in letzten stunden.
Da einizge was ich nun anderes gemacht hatte war, ich hab den kompletten openhab-config ordner gelöscht und hab einen alten config ordner rein Kopiert habe mit den selben funktionen.
Nach dem rein kopieren hat es mir komischweise keine sitemaps angezeigt die waren alle weg, dann hab ich ein neustart gemacht danach war alles wieder da und der Reboot button hat dann auch funktioniert, also ich vermutte mal das die whitelist nicht richtig gelesen wurde.
In der Log taucht auch nun die meldung nicht mehr auf das es in der whitelist fehlt.
Aber leider sieht man ja das nicht in der Log ob die whitelist neu geladen wurde oder nicht ,
wie z.b. bei den rules. sollte man hier nach besser damit man das auch nach vollziehen kann.

Ich weis nicht ob es relevant ist ob man die exec.whitelist im nano oder in Visual studio code bearbeitet oder erstellen muss.
Momentan hatte ich alles in Visual Studio code angelegt, hab vorher auch ein mal nur kurz die withtelist 1x im nano bearbeitet.
Gehe zur vollständigen Antwort
Zuletzt geändert von itsego1990 am 6. Jul 2020 01:07, insgesamt 2-mal geändert.

thomas_w

Re: Reboot button / Withelist

Beitrag von thomas_w »

itsego1990 hat geschrieben: 5. Jul 2020 20:10 ich versteh nicht ganz warum der Befehl nicht angenommen wird, den ich hab ihn ja in die liste eingetragen.
Im Internet hab ich auch schon gesucht aber eine lösung hab ich nicht gefunden bisher dazu, da ich ja kein script in einer anderen externen datei habe.
Ein Beispiel von mir... in der whiteliste steht alles was bei command="..." zwischen an Anführungstrichen steht.
Also: command="/bin/bash /etc/openhab2/scripts/cpu_temp.sh"

.things

Code: Alles auswählen

Thing exec:command:cpu_temp "OH2-PI Temperatur" @ "Admin" 
                    [command="/bin/bash /etc/openhab2/scripts/cpu_temp.sh", interval=600, timeout=30, transform="REGEX((.*?))"]
misc/exec.whiteliste

Code: Alles auswählen

/bin/bash /etc/openhab2/scripts/cpu_temp.sh
So tut's bei mir...

Aber richtig, bei dir ist ja ein Parameter mit enthalten... hm. Somit keine Lösung.


Grüße
Thomas
Zuletzt geändert von thomas_w am 5. Jul 2020 20:37, insgesamt 1-mal geändert.

Benutzeravatar
warhook76
Beiträge: 24
Registriert: 4. Apr 2018 18:53
Answers: 0

Re: Reboot button / Withelist

Beitrag von warhook76 »

Hallo,

ich hab ein Script in Python um einen Multisensor abzufragen. Ich musste den kompletten Befehl inklusive Parameter eingeben. Die Variable wird ja nicht ausgeführt, sondern ersetzt!

Ich habe also den Befehl 3x drin! Für jeden Parameter extra!

Am Ende sollte noch eine Leerzeile sein.

Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk


Benutzeravatar
itsego1990
Beiträge: 14
Registriert: 21. Nov 2017 23:27
Answers: 1
Wohnort: BW

Re: Reboot button / Withelist

Beitrag von itsego1990 »

warhook76 hat geschrieben: 5. Jul 2020 20:35 Hallo,

ich hab ein Script in Python um einen Multisensor abzufragen. Ich musste den kompletten Befehl inklusive Parameter eingeben. Die Variable wird ja nicht ausgeführt, sondern ersetzt!

Ich habe also den Befehl 3x drin! Für jeden Parameter extra!

Am Ende sollte noch eine Leerzeile sein.

Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk
hi,

Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?

Benutzeravatar
warhook76
Beiträge: 24
Registriert: 4. Apr 2018 18:53
Answers: 0

Re: Reboot button / Withelist

Beitrag von warhook76 »

itsego1990 hat geschrieben:
warhook76 hat geschrieben: 5. Jul 2020 20:35 Hallo,

ich hab ein Script in Python um einen Multisensor abzufragen. Ich musste den kompletten Befehl inklusive Parameter eingeben. Die Variable wird ja nicht ausgeführt, sondern ersetzt!

Ich habe also den Befehl 3x drin! Für jeden Parameter extra!

Am Ende sollte noch eine Leerzeile sein.

Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk
hi,

Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
Zum Beispiel:

Code: Alles auswählen

 /usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck 
Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk


Benutzeravatar
itsego1990
Beiträge: 14
Registriert: 21. Nov 2017 23:27
Answers: 1
Wohnort: BW

Re: Reboot button / Withelist

Beitrag von itsego1990 »

warhook76 hat geschrieben: 5. Jul 2020 20:52
itsego1990 hat geschrieben:
warhook76 hat geschrieben: 5. Jul 2020 20:35 Hallo,

ich hab ein Script in Python um einen Multisensor abzufragen. Ich musste den kompletten Befehl inklusive Parameter eingeben. Die Variable wird ja nicht ausgeführt, sondern ersetzt!

Ich habe also den Befehl 3x drin! Für jeden Parameter extra!

Am Ende sollte noch eine Leerzeile sein.

Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk
hi,

Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
Zum Beispiel:

Code: Alles auswählen

 /usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck 
Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk

Hi, Leider macht das bei mir kein unterschied hab nun eingeben :

sudo %2$s
sudo reboot
sudo shutdown
sudo /bin/systemctl restart openhab2.service
sudo /bin/systemctl %2$s openhab2.service


bekomm immer noch in der Log das gleiche angezeigt, das es nicht in der liste wäre

Benutzeravatar
warhook76
Beiträge: 24
Registriert: 4. Apr 2018 18:53
Answers: 0

Re: Reboot button / Withelist

Beitrag von warhook76 »

itsego1990 hat geschrieben:
warhook76 hat geschrieben: 5. Jul 2020 20:52
itsego1990 hat geschrieben: hi,

Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
Zum Beispiel:

Code: Alles auswählen

 /usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck 
Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk

Hi, Leider macht das bei mir kein unterschied hab nun eingeben :

sudo %2$s
sudo reboot
sudo shutdown
sudo /bin/systemctl restart openhab2.service
sudo /bin/systemctl %2$s openhab2.service


bekomm immer noch in der Log das gleiche angezeigt, das es nicht in der liste wäre
Versuch mal den Pfad zu Audi anzugeben! Hab da mit Python auch Probleme gehabt.

Versuche das Mal in ein SH Script zu packen.

Code: Alles auswählen

 /bin/sh /etc/oh2/scripts/renoir.sh
/bin/sudo reboot
Gruß

Gesendet von meinem Nokia 7.2 mit Tapatalk


Benutzeravatar
itsego1990
Beiträge: 14
Registriert: 21. Nov 2017 23:27
Answers: 1
Wohnort: BW

Re: Reboot button / Withelist

Beitrag von itsego1990 »

In der Things hab ich drin stehen :

Thing exec:command:oh2service [command="sudo /bin/systemctl %2$s openhab2.service", autorun=true]
Thing exec:command:piservice [command="sudo %2$s", autorun=true]

in der Items:

String PI_Service "PI Service" {channel="exec:command:piservice:input"}
String PI_Service2 "PI Service2" {channel="exec:command:piservicereboot:input"}

in der Sitemap:

Switch item=OH2_Service mappings=[restart="Restart" ]
Switch item=PI_Service mappings=[reboot="Reboot", shutdown="Shutdown"]

Benutzeravatar
warhook76
Beiträge: 24
Registriert: 4. Apr 2018 18:53
Answers: 0

Re: Reboot button / Withelist

Beitrag von warhook76 »

itsego1990 hat geschrieben: 5. Jul 2020 22:00 In der Things hab ich drin stehen :

Thing exec:command:oh2service [command="sudo /bin/systemctl %2$s openhab2.service", autorun=true]
Thing exec:command:piservice [command="sudo %2$s", autorun=true]

in der Items:

String PI_Service "PI Service" {channel="exec:command:piservice:input"}
String PI_Service2 "PI Service2" {channel="exec:command:piservicereboot:input"}

in der Sitemap:

Switch item=OH2_Service mappings=[restart="Restart" ]
Switch item=PI_Service mappings=[reboot="Reboot", shutdown="Shutdown"]
Vielleicht sollte man das ganze ohne sudo machen!
Die unelegante Lösung lautet:

Code: Alles auswählen

 chmod +s /sbin/shutdown 
Nötigenfalls mit sudo vorne weg!
Eleganter ist es in der Datei /etc/shutdown.allow den Benutzer einzutragen! Pro Zeile ein Name!
Dann wird ein Reboot mit

Code: Alles auswählen

 shutdown -a -r now 
ausgelöst! Das -a verweist auf die berechtigten User und -r startet neu! -h schaltet ab!
In die Whitelist muß dann:

Code: Alles auswählen

 /sbin/shutdown -a -r now 
 /sbin/shutdown -a -h now
Bei Methode 1 entfällt das -a!


Gruß

Benutzeravatar
itsego1990
Beiträge: 14
Registriert: 21. Nov 2017 23:27
Answers: 1
Wohnort: BW

Re: Reboot button / Withelist

Beitrag von itsego1990 »

Danke für deine Idee leider brauche ich sie nun nicht mehr , denn es nun Funktioniert kommisch weise.
Mit diesem eintrag in der exec.withelist funktoinert es :

sudo %2$s
sudo /bin/systemctl restart openhab2.service


Es hätte ja von anfang an so Funktionieren müssen, ich hatte mein system schon min. 5mal in der Putty console neu gestartet in letzten stunden.
Da einizge was ich nun anderes gemacht hatte war, ich hab den kompletten openhab-config ordner gelöscht und hab einen alten config ordner rein Kopiert habe mit den selben funktionen.
Nach dem rein kopieren hat es mir komischweise keine sitemaps angezeigt die waren alle weg, dann hab ich ein neustart gemacht danach war alles wieder da und der Reboot button hat dann auch funktioniert, also ich vermutte mal das die whitelist nicht richtig gelesen wurde.
In der Log taucht auch nun die meldung nicht mehr auf das es in der whitelist fehlt.
Aber leider sieht man ja das nicht in der Log ob die whitelist neu geladen wurde oder nicht ,
wie z.b. bei den rules. sollte man hier nach besser damit man das auch nach vollziehen kann.

Ich weis nicht ob es relevant ist ob man die exec.whitelist im nano oder in Visual studio code bearbeitet oder erstellen muss.
Momentan hatte ich alles in Visual Studio code angelegt, hab vorher auch ein mal nur kurz die withtelist 1x im nano bearbeitet.
Zuletzt geändert von itsego1990 am 6. Jul 2020 22:25, insgesamt 3-mal geändert.

Antworten