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

Offline RaspiLED

  • Hero Member
  • *****
  • Beiträge: 2450
  • Es begann alles so klein ;-)
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #60 am: 20 Januar 2018, 10:39:46 »
*Bedankt*

Ich wollte nur mal schnell Danke sagen! Dein Modul ist super!
Hier mal als Idee für andere meine use cases:
- HomeBridge und FHEM neustarten  (stop gemappt auf restart) um Homekit Room neu in HomeBridge einzulesen
- VPNC über HomeBridge starten und somit von außen jederzeit eine Verbindung von Innen aufbauen können
Wie gesagt: Danke läuft super!
Gruß Arnd

Gesendet von meinem SM-G800F mit Tapatalk

Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1494
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #61 am: 20 Januar 2018, 12:12:13 »
Hallo,
habe mit dem passwortlosen ssh noch ein Problem. Habe folgendes gemacht:
Auf beiden Maschinen gibt es user fhem in der Gruppe dialout. Erst einmal können sich auf beiden Maschinen der Nutzer fhem einloggen.
Das home-Verzeichnis für fhem habe ich auf  /home/fhem gesetzt.
Jeweils darunter ein .ssh - Verzeichnis erzeugt.

Dann auf server 1 einen rsa - key generiert
ssh-keygen -t rsa -P ''
und den auf die Zielmaschine kopiert:
ssh-copy-id -i ~/.ssh/id_rsa.pub fhem@server2
Das alles unter dem user fhem.
Vorsichtshalber auf der Zielmaschine im .ssh - Verzeichnis
cp authorized_keys authorized_keys2
kopiert. Scheint wohl von der ssh - Version abhängen.
Trotzdem kommt die Passwortabrage bei
ssh fhem@server2

Habt ihr abweichend davon, noch etwas anderes gemacht? Bei mir im .ssh - Verzeichnis sind die beiden Dateien:
id_rsa.key und id_rsa.pub vorhanden.

Elektrolurch
configDB und Windows befreite Zone!

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1494
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #62 am: 21 Januar 2018, 15:57:17 »
Hallo,

jetzt wollte ich mit dem Befehl visudo bei den Benutzer-Priviligien hinter root die aus Beitrag 49 gepostete Zeile einfügen:
fhem ALL=(ALL) NOPASSWD:/bin/systemctl * homebridge


bekomme aber einen syntax Error, wobei ich den Grund nicht nachvollziehn kann oder stimmt die Position der Zeile nach root nicht?

P.S: ohne die neue Zeile kommt auch kein Syntaxfehler
Elektrolurch

configDB und Windows befreite Zone!

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 8500
  • NIVEAu ist keine Creme...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #63 am: 21 Januar 2018, 16:10:12 »
Welches System hast du?

Bei Stretch z.B. werden andere User (u.a. pi) per include eingebunden.

Das heisst in /etc/sudoers.d sind zusätzliche Dateien (eine pro User, d.h. für pi sollte schon eine da sein, die kann kopiert und angepsst werden).

Das gilt bzgl. pi usw. natürlich erst mal nur auf einem Raspberry PI ;)

Gruß, Joachim
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, KODI, alexa-fhem, ...
FHEM PI2 Stretch: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 Stretch (Test)

Offline RaspiLED

  • Hero Member
  • *****
  • Beiträge: 2450
  • Es begann alles so klein ;-)
Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #64 am: 21 Januar 2018, 17:22:05 »
Fyi:
fhem@fhem:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem    ALL=(ALL:ALL) NOPASSWD:/bin/systemctl

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
fhem@fhem:~$ uname -a
Linux fhem 4.9.0-4-686-pae #1 SMP Debian 4.9.65-3+deb9u1 (2017-12-23) i686 GNU/Linux



Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1494
eAntw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #65 am: 22 Januar 2018, 11:14:47 »
Ok. Danke. So gehts:
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl

aber so gehts leider nicht (Beitrag #49)
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl * homebridge,openvpn

Dann bekomme ich den Syntaxfehler.
Muss das hinter dem NOPASSWD ev. dann in "" oder '' gesetzt werden?

Elektrolurch
configDB und Windows befreite Zone!

Offline no_Legend

  • Hero Member
  • *****
  • Beiträge: 1287
Ok. Danke. So gehts:
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl

aber so gehts leider nicht (Beitrag #49)
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl * homebridge,openvpn

Dann bekomme ich den Syntaxfehler.
Muss das hinter dem NOPASSWD ev. dann in "" oder '' gesetzt werden?

Elektrolurch

Edit:
Warum gibst du FHEM nicht die kompletten systemctl frei?
« Letzte Änderung: 22 Januar 2018, 11:25:24 von no_Legend »
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1255
  • 🏠⚙️💡🛠📱
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #67 am: 05 Februar 2018, 13:09:00 »
Hi Dan,
ich habe dein Modul seit Beginn im Einsatz. Läuft prächtig!
Beim shutdown restart taucht immer folgende Meldung im Log auf:
2018.01.30 14:17:18 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_serviced.pm line 373.
Wie lange das schon so ist kann ich nicht sagen - hebe meine Logs nur 7 Tage auf.
VG Sebatsian
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, SONOS, alexa-fhem, homebridge, TelegramBot mit msgDialog, livetracking
Testumgebung: docker pull fhem/fhem

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4204
  • Wer anderen eine Bratwurst brät...
Antw:eAntw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #68 am: 05 Februar 2018, 19:14:54 »
Ok. Danke. So gehts:
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl

aber so gehts leider nicht (Beitrag #49)
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl * homebridge,openvpn

Dann bekomme ich den Syntaxfehler.
Muss das hinter dem NOPASSWD ev. dann in "" oder '' gesetzt werden?

Elektrolurch

Du musst leider immer den kompletten Pfad angeben, zumindest habe ich noch keine andere Lösung gefunden.
fhem ALL=(ALL:ALL) NOPASSWD:/bin/systemctl * homebridge,/bin/systemctl * openvpn

Hi Dan,
ich habe dein Modul seit Beginn im Einsatz. Läuft prächtig!
Beim shutdown restart taucht immer folgende Meldung im Log auf:
2018.01.30 14:17:18 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_serviced.pm line 373.
Wie lange das schon so ist kann ich nicht sagen - hebe meine Logs nur 7 Tage auf.
VG Sebatsian

Das ist schon gefixt (bei mir).
Da es kein schwerwiegender Fehler ist habe ich die Version hier noch nicht aktualisiert.

Wenn ich die Tage Zeit dafür finde, checke ich das aktuelle Modul in SVN ein.

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 Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6491
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #69 am: 06 Februar 2018, 14:19:46 »
Das Du den genauen Pfad angeben mußt ist ein Sicherheitsfeature. Stell Dir mal vor, Du hast ein "Tolles-Programm" und gibst dieses per sudo ohne Pfad frei. Jetzt kommt ein "Böser" (der sich einloggen kann) und nett sein "böses-Script" einfach  "Tolles-Programm". Wenn der Pfad nicht angegeben würde, könnte er damit sein Programm per sudo als root starten ...

Vergiss nicht, das Linux als Unix-System ein echtes  Multiuserbetriebsystem ist ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline simonTS

  • Jr. Member
  • **
  • Beiträge: 57
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #70 am: 13 November 2018, 22:56:39 »
Hallo,

ich habe mich gerade am modul versucht. Leider scheints bei mir zu hängen:
define SD_doorpi serviced doorpi pi@192.168.1.6
attr SD_doorpi serviceInitd 1

der manuelle login via ssh funktioniert, ebenso service doorpi status.
Die Statusabfrage via fhem/serviced führt leider zu einer ewig andauernden Abfrage. Dabei wird das statereading permanent mit "status" beschrieben. Zumindest aktualisiert sich der Timestamp permanent ...

Mein Log untenstehend. Dabei habe ich den schalter für initd zu zuerst nicht gesetzt gehabt, wovon die erste zeile zeugt. Allerdings zeigt es ebenso, dass der login schonmal funktioniert.
sudo: systemctl: command not found
2018.11.13 22:34:16 1: Timeout for serviced_ExecCmd reached, terminated process 27006
2018.11.13 22:34:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_serviced.pm line 373.
2018.11.13 22:35:18 1: Timeout for serviced_ExecCmd reached, terminated process 27122
2018.11.13 22:41:41 1: PERL WARNING: Subroutine serviced_Initialize redefined at ./FHEM/98_serviced.pm line 32.
2018.11.13 22:41:41 1: PERL WARNING: Subroutine serviced_Define redefined at ./FHEM/98_serviced.pm line 57.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Undef redefined at ./FHEM/98_serviced.pm line 93.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Shutdown redefined at ./FHEM/98_serviced.pm line 103.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_shutdownwait redefined at ./FHEM/98_serviced.pm line 126.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Notify redefined at ./FHEM/98_serviced.pm line 154.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Get redefined at ./FHEM/98_serviced.pm line 192.
2018.11.13 22:41:42 1: PERL WARNING: Prototype after '@' for main::serviced_Set : $@;$ at ./FHEM/98_serviced.pm line 208.
2018.11.13 22:41:42 1: PERL WARNING: Prototype mismatch: sub main::serviced_Set ($@) vs ($@;$) at ./FHEM/98_serviced.pm line 256.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Set redefined at ./FHEM/98_serviced.pm line 209.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_Attr redefined at ./FHEM/98_serviced.pm line 259.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_ExecCmd redefined at ./FHEM/98_serviced.pm line 330.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_ExecFinished redefined at ./FHEM/98_serviced.pm line 385.
2018.11.13 22:41:42 1: PERL WARNING: Subroutine serviced_GetUpdate redefined at ./FHEM/98_serviced.pm line 446.
2018.11.13 22:42:51 1: Timeout for serviced_ExecCmd reached, terminated process 27319
2018.11.13 22:42:51 1: PERL WARNING: Use of uninitialized value $string in split at ./FHEM/98_serviced.pm line 387.
2018.11.13 22:42:51 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/98_serviced.pm line 391.
2018.11.13 22:42:51 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4365.
2018.11.13 22:42:51 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/98_serviced.pm line 439.
2018.11.13 22:50:18 1: Timeout for serviced_ExecCmd reached, terminated process 27749

Vllt. ne idee, wo mein Fehler liegt?
FHEM auf wheezy@RPI-->
KNX: MDT STV-0320.01|SCN-IP000.01|AMI-1216.01|JAL-0810.01|AKD-0401.01|AKH-0800.01|BE-GTT4W.01|SCN-P360D1.01|SCN-G360K3.01|ABB-MRS/W Magnet-Reedkontakt|Zisterne:SRF06|LED:XCSOURCE WIFI Controller|

Offline Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6491
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #71 am: 15 November 2018, 09:35:37 »
sudo: systemctl: command not found
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline simonTS

  • Jr. Member
  • **
  • Beiträge: 57
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #72 am: 16 November 2018, 23:42:47 »
Einen Schönen Guten Abend!

Leider nicht ... Die Zeile stammt noch von meinem ersten Versuch, bevor ich den switch auf initd gesetzt habe. Allerdings hat sich dennoch die Fehlermeldung geändert:
2018.11.16 23:39:03 5: Cmd: >get SD_doorpi status<
2018.11.16 23:39:03 4: SD_doorpi: executed shell command: sudo service doorpi status
2018.11.16 23:39:03 4: BlockingCall (serviced_ExecCmd): created child (1828), uses telnetPort to connect back
2018.11.16 23:39:03 5: Starting notify loop for SD_doorpi, 1 event(s), first is status
2018.11.16 23:39:03 5: createNotifyHash
sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
2018.11.16 23:39:03 5: End notify loop for SD_doorpi
2018.11.16 23:39:03 4: WEB: /fhem?detail=SD_doorpi&dev.getSD_doorpi=SD_doorpi&cmd.getSD_doorpi=get&arg.getSD_doorpi=status&val.getSD_doorpi=&XHR=1&addLinks=1&fwcsrf=csrf_278740654645988&fw_id=5178 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2018.11.16 23:39:03 4: Connection accepted from telnetPort_127.0.0.1_50770
2018.11.16 23:39:03 5: Cmd: >{BlockingStart('2474')}<
2018.11.16 23:39:03 5: Cmd: >{serviced_ExecFinished('SD_doorpi|sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben|1')}<
2018.11.16 23:39:03 5: Starting notify loop for SD_doorpi, 2 event(s), first is error
vorhanden und kein »askpass«-Programm angegeben
2018.11.16 23:39:04 5: End notify loop for SD_doorpi
2018.11.16 23:39:04 3: SD_doorpi: Error: sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben

macht mich aber auch nicht schlauer. Eigentlich kann ich mich mit dem Nutzer Problemlos in beiden Systemen bewegen, bzw. mit pi auf dem remote system. Vllt suche ich aber auch an der falschen stelle.

EDIT:
Das lag jetzt schonmal am falschen eintrag in sudoers. Das Anpassen auf service hatte ich wohl auch vergessen. Leider dennoch kein erfolg. der manuelle weg via ssh geht inkl. sudo service ... ohne password problemlos.
Unit doorpi.service could not be found.
2018.11.16 23:50:29 3: SD_doorpi: Error: Unit doorpi.service could not be found.
« Letzte Änderung: 16 November 2018, 23:53:51 von simonTS »
FHEM auf wheezy@RPI-->
KNX: MDT STV-0320.01|SCN-IP000.01|AMI-1216.01|JAL-0810.01|AKD-0401.01|AKH-0800.01|BE-GTT4W.01|SCN-P360D1.01|SCN-G360K3.01|ABB-MRS/W Magnet-Reedkontakt|Zisterne:SRF06|LED:XCSOURCE WIFI Controller|

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 8500
  • NIVEAu ist keine Creme...
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #73 am: 16 November 2018, 23:53:43 »
Hast du PASSWORTLOSEN Zugang für den User FHEM (nicht pi!) auf dem (Remote)system!?

Bzw. für User FHEM (nicht pi) sudo OHNE PASSWORT zumindest für den "service-Aufruf"!?

(bin grad nicht so sicher, ob du lokal oder remote ausführst/ausführen willst, weil du etwas von ssh schreibst)

Denn so wie es geschrieben steht: es wird nach einem Passwort bei ssh bzw. bei dem sudo "gefragt"...
...da fhem da automatisch nichts eingeben kann (eine Möglichkeit wäre das angemerkte "askpass" [Programm dass das automatisch tut] aber davon halte ich nichts!) schlägt der Aufruf fehl bzw. wird abgebrochen.

Gruß, Joachim
« Letzte Änderung: 16 November 2018, 23:56:51 von MadMax-FHEM »
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, KODI, alexa-fhem, ...
FHEM PI2 Stretch: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 Stretch (Test)

Offline simonTS

  • Jr. Member
  • **
  • Beiträge: 57
Antw:Neues Modul: 98_serviced.pm - systemd und initd Dienste steuern
« Antwort #74 am: 16 November 2018, 23:59:34 »
Da war ich wohl zu langsam ;-)

Ok. Das bedeutet ich muss auf dem remote system den nutzer fhem anlegen. das habe ich nicht gemacht.

lediglich der ssh pi@ip funktioniert ohne password, der sudo service ... wird dann logischerweise als pi ausgeführt, wenn ich es "von hand" versuche nachzustellen.
« Letzte Änderung: 17 November 2018, 00:01:07 von simonTS »
FHEM auf wheezy@RPI-->
KNX: MDT STV-0320.01|SCN-IP000.01|AMI-1216.01|JAL-0810.01|AKD-0401.01|AKH-0800.01|BE-GTT4W.01|SCN-P360D1.01|SCN-G360K3.01|ABB-MRS/W Magnet-Reedkontakt|Zisterne:SRF06|LED:XCSOURCE WIFI Controller|

 

decade-submarginal