Reboot button / exec.whitelist
- itsego1990
- Beiträge: 14
- Registriert: 21. Nov 2017 23:27
- Wohnort: BW
Reboot button / exec.whitelist
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.
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.
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 AntwortMit 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 01:07, insgesamt 2-mal geändert.
Re: Reboot button / Withelist
Ein Beispiel von mir... in der whiteliste steht alles was bei command="..." zwischen an Anführungstrichen steht.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.
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((.*?))"]
Code: Alles auswählen
/bin/bash /etc/openhab2/scripts/cpu_temp.sh
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.
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Reboot button / Withelist
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
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
- itsego1990
- Beiträge: 14
- Registriert: 21. Nov 2017 23:27
- Wohnort: BW
Re: Reboot button / Withelist
hi,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
Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Reboot button / Withelist
Zum Beispiel:itsego1990 hat geschrieben:hi,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
Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
Code: Alles auswählen
/usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck
Gesendet von meinem Nokia 7.2 mit Tapatalk
- itsego1990
- Beiträge: 14
- Registriert: 21. Nov 2017 23:27
- Wohnort: BW
Re: Reboot button / Withelist
warhook76 hat geschrieben: ↑5. Jul 2020 20:52Zum Beispiel:itsego1990 hat geschrieben:hi,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
Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
GrußCode: Alles auswählen
/usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck
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
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Reboot button / Withelist
Versuch mal den Pfad zu Audi anzugeben! Hab da mit Python auch Probleme gehabt.itsego1990 hat geschrieben:warhook76 hat geschrieben: ↑5. Jul 2020 20:52Zum Beispiel:itsego1990 hat geschrieben: hi,
Hört sich schon mal gut an welche Parameter stehen bei dir alles Drin? hast du ein Beispiel ?
GrußCode: Alles auswählen
/usr/bin/python3 /etc/openhab2/Scripts/sensor.py druck
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
Versuche das Mal in ein SH Script zu packen.
Code: Alles auswählen
/bin/sh /etc/oh2/scripts/renoir.sh
/bin/sudo reboot
Gesendet von meinem Nokia 7.2 mit Tapatalk
- itsego1990
- Beiträge: 14
- Registriert: 21. Nov 2017 23:27
- Wohnort: BW
Re: Reboot button / Withelist
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"]
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"]
- warhook76
- Beiträge: 24
- Registriert: 4. Apr 2018 18:53
Re: Reboot button / Withelist
Vielleicht sollte man das ganze ohne sudo machen!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"]
Die unelegante Lösung lautet:
Code: Alles auswählen
chmod +s /sbin/shutdown
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
In die Whitelist muß dann:
Code: Alles auswählen
/sbin/shutdown -a -r now
/sbin/shutdown -a -h now
Gruß
- itsego1990
- Beiträge: 14
- Registriert: 21. Nov 2017 23:27
- Wohnort: BW
Re: Reboot button / Withelist
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.
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.