Autor Thema: Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern  (Gelesen 17283 mal)

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4202
  • Wer anderen eine Bratwurst brät...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #105 am: 16 November 2019, 19:46:26 »
Hallo @DeeSPe,

vielen Dank für Dein sehr praktisches Modul!
Ich habe aber einen kleinen Fehler gefunden:
In Zeile 152 lautet der Code: my $sudo = AttrNum($name,"serviceSudo",1) || $login !~ /^root@/ ? "sudo " : "";Damit funktioniert die Verwendung ohne sudo nicht, trotz gesetztem Attribut serviceSudo.
Nach minimaler Änderung der Zeile: my $sudo = AttrNum($name,"serviceSudo",1) || $login =~ /^root@/ ? "sudo " : "";funktioniert das Modul auch ohne sudo. Aus meiner Sicht schlüssig, da die Überprüfung im ternären Operator nur dann sudo ergeben müsste, wenn $login root enthält.

Vielen Dank schon mal!

Irgendwie war ich heute früh noch nicht ganz wach und habe mich irgendwie von Deinem Argument täuschen lassen.
Es war schon richtig so wie es vorher (ohne Deine Änderung) war. Wenn Du schon root bist, benötigst Du doch kein sudo. Es wird nur benötigt wenn man eben kein root ist.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline dennisk

  • New Member
  • *
  • Beiträge: 10
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #106 am: 17 November 2019, 09:46:05 »
OK, stimmt, wenn ich jetzt drüber nachdenke, hast Du natürlich Recht, sorry
Dennoch funktioniert bei mir die Nutzung ohne sudo wirklich nur mit der Änderung. Mein FHEM wird jedenfalls nicht unter root gestartet, sondern dem User fhem. Müsste dann nicht eigentlich, bei Setzen von serviceSudo = 0 kein sudo verwendet werden?

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4202
  • Wer anderen eine Bratwurst brät...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #107 am: 17 November 2019, 13:31:56 »
Mir ist zwar noch nicht ganz klar warum man als Nicht-root kein sudo benötigen sollte, aber ich denke wenn Du nach Zeile 152 die folgende Zeile einfügst sollte es mit "serviceSudo 0" klappen.
$sudo = "" if (AttrNum($name,"serviceSudo",1) == 0);
Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline dennisk

  • New Member
  • *
  • Beiträge: 10
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #108 am: 18 November 2019, 19:51:23 »
Ich kann auf sudo verzichten, weil ich dem Benutzer fhem die Berechtigung erteilt habe, den systemd-Service zu steuern.
Das Ganze habe ich mit Polkit umgesetzt und verwende folgende Regel:
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.systemd1.manage-units") {
        if (action.lookup("unit") == "fhem.service") {
            var verb = action.lookup("verb");
            if (verb == "start" || verb == "stop" || verb == "restart") {
                if (subject.user == "fhem") {
                    return polkit.Result.YES;
                }
            }
        }
    }
});

Wie wäre alternativ folgende Anpassung: my $sudo = AttrNum($name,"serviceSudo",1) && $login !~ /^root@/ ? "sudo " : "";Nun wird sudo nur dann verwendet, wenn der Parameter serviceSudo auf 1 steht UND der Benutzername nicht root ist. Jetzt müsste doch die ursprüngliche Funktionalität erhalten bleiben und serviceSudo = 0 funktioniert auch. Was denkst Du?

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4202
  • Wer anderen eine Bratwurst brät...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #109 am: 18 November 2019, 21:25:01 »
my $sudo = AttrNum($name,"serviceSudo",1) && $login !~ /^root@/ ? "sudo " : "";

Danke.
Ist so eingecheckt!

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Online piet_pit

  • Full Member
  • ***
  • Beiträge: 250
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #110 am: 13 Juni 2020, 18:24:21 »
Hallo Dan,

ich nutze dein Tool und bin damit sehr zufrieden. Es erleichtert sehr den Umgang mit der Neukonfiguration z.B. bei Homebridge.

Nun habe ich homebridge neu installiert und bin dabei nach der Anleitung aus den github zu homebridge vorgegangen.

https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian

Das hat sehr gut und einwandfrei geklappt, auch die Installation mit dieser

Homebridge Config UI X
Nun klappt aber dein Modul nicht mehr, deshalb die Frage, ob und wo ich das anpassen muss, da steige ich irgendwie nicht durch... 8)

Vielen Dank und viele Grüße
Pit




FHEM 5.9 auf Raspberry Pi 3, Rasbian-Stretch
FRITZ!Box 7490
HM-Mod-RPI-PCB
JeeLink
CUNO 1.47

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4202
  • Wer anderen eine Bratwurst brät...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #111 am: 26 Juni 2020, 11:47:30 »
Hallo Pit,

ich habe meinen homebridge Service schon ewig laufen und auch über das Modul serviced an FHEM angebunden.
Laut dem von Dir verlinktem Wiki sollte das ja weiterhin über homeridge.service laufen. Allerdings wird der Service nun nicht mehr über systemctl gesteuert, sondern über ein eigenes Kommando "hb-service". Ich habe keinerlei Ahnung was das nun anders macht.
Aber letztendlich ist homebridge-config-ui-x auch nur ein Plugin für homebridge.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Online piet_pit

  • Full Member
  • ***
  • Beiträge: 250
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #112 am: 29 Juni 2020, 17:27:42 »
Hallo Dan,

vielen Dank für deine Antwort.
Ich habe dein Modul deinstalliert und neu installiert, jetzt klappt es einwandfrei.

Viele Grüße
Pit
FHEM 5.9 auf Raspberry Pi 3, Rasbian-Stretch
FRITZ!Box 7490
HM-Mod-RPI-PCB
JeeLink
CUNO 1.47