FHEM Rechteproblem mit Python-Skript

Begonnen von Taobyebye, 11 Juni 2016, 18:41:37

Vorheriges Thema - Nächstes Thema

Taobyebye

Hallo,

ich habe folgendes Problem:

Ein Skript wird über FHEM mit sudo ausgeführt, nun soll dieses Skript auch wieder beendet werden können. Dies funktioniert nur, wenn man dem User fhem volle Root-Rechte gibt. Jemand eine Idee wie man einen Prozess killen kann, ohne volle Root-Rechte zu vergeben?

digiart

Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Taobyebye

Habe ich schon versucht, ohne Erfolg.

digiart

Dann rate ich einmal weiter, ohne dein System zu kennen:
In der sudoers-Datei ist für den User fhem eingetragen, dass er "sudo kill" ohne Passwort verwenden darf?
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Taobyebye

Wie trage ich das ein?
Mit visudo habe ich schon herumgespielt und mit vollen Rechten hat es funktioniert, nur wie gebe ich lediglich Rechte für den Kill-Prozess?

vbs

Ist erstmal schon nicht so gut, dass das Script per sudo gestartet wird. Muss das so sein?

Taobyebye

Ohne Root-Rechte kann ich das Skript nicht starten, da die GPIOs angesprochen werden um einen Bewegungsmelder anzusprechen.

CoolTux

Dann füge den User fhem zu der Gruppe für die GPIO Gruppe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Puschel74

https://wiki.ubuntuusers.de/Benutzer_und_Gruppen/
Ich liebe meine liebste Suchmaschine  8)

Nein im Ernst.
Unter Linux sollte man sich mit Rechten, Gruppen und Nutzern vertraut machen.
Es lässt sich alles auch ohne root-Rechten machen solange die Benutzerrechte stimmen.
Mit root geht es zwar einfacher aber allem jedes zu erlauben ist nicht wirklich Sinn des Nutzerkonzeptes unter Linux.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Taobyebye

gpio:x:997:pi,fhem
ist schon in der GPIO-Gruppe drin.
@Puschel: Genau deswegen Frage ich nach, ich möchte nur die nötigen Rechte verwenden aber wie ?

CoolTux

Dazu müssen wir erstmal wissen was genau du machen willst und was gegeben ist.
Wenn du ein Script ausführen willst was einen Befehl aus führt der auf ein Devicefile zu greift, so muss sowohl die Gruppe für das Script als auch die Gruppe des Devicefiles eine Gruppe sein in der der User fhem drin ist.

Es kann auch sein das fhem eine Shell benötigt. Also nicht /bin/false sondern mal /bin/sh probieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Taobyebye

Infrarot-Bewegungsmelder (PIR) ist an die GPIO des Raspi angeschlossen.
PIR wartet auf Bewegung
PIR erkennt Bewegung
Pi Noir Kamera macht ein Foto
Das Foto wird an eine Mail-Adresse geschickt
Ein Video wird erstellt und auf einem USB-Stick gespeichert
Bewegungsmelder wartet auf Bewegung
Das Skript das ich stoppen möchte ist ein Python-Skript für den PIR.


vbs

Und woran genau scheitert es? Am besten mit konkreter Fehlermeldung.

Taobyebye

Wenn ich mit visudo dem User fhem Alle Rechte für den Pfad des Skripts gebe, kann ich das Skript über FHEM mit z.B. killall -USR1 skript.py beenden.
Ich möchte dem User fhem aber keine Root-Rechte geben um das Sjript beenden zu können.

vbs

Genau, aber woran hapert es, wenn du dem fhem-User keine root-Rechte gibst?