Hauptmenü

LIRC /IREXEC zickt

Begonnen von Hans Preuth, 11 Dezember 2017, 22:05:10

Vorheriges Thema - Nächstes Thema

Wernieman

Kein Problem .. dann läuft bei Dir der irexec unter root ... hast Du Debian oder Raspian "drauf"?

Könnnte auch der Standart bei der ARM-Distri sein. Wie schon mal geschrieben, kenne mich mit lirc/irexec aus, aber nicht unter dem raspi.

Was mir mal als Debuglösung eingefallen ist: Könntest Du Dir ein Script schreiben, was einfach nur mal ein Logfile schreibt?
ala:
#!/bin/bash
date >>/var/log/irexec.log


Wenn Du dieses mit irexec/einem Tastendruck verbindest, funktioniert es dann?

z.B. in einem Fenster:
tail -f /var/log/irexec.log

Wenn Du jetzt "die" Taste auf der fernbedienung drückst, müstest Du im Terminal die Uhrzeit sehen. So kannst Du erstmal ohne FHEM testen ...

Ansonsten .. wird erst in der 2. Januarwoche mit einer Debugsession
- 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

Hans Preuth

Habe Heilig Abend vormittags (meine Frau war Einkaufen und ich hatte Zeit) alles Neugemacht.
1. OS Jessie neu aufgesetzt -Image erstellt
2.  WiringPi uns lirc installiert -> Fernbedienung geht
3. Fhem installiert -> FB geht
4. Fhem Backup installiert - > FB geht - aber einige scripte (.sh) laufen nicht
5. Fhem erlaubt Sudo zu nutzen wie hier beschrieben:
1.  /etc/passwd
sudo nano /etc/passwd
Hier wird folgendes geändert:
fhem:x:999:20::/opt/fhem:/bin/none
in:
fhem:x:999:20::/opt/fhem:/bin/bash
Mit "Strg+O" speichern und mit "Strg+X" schließen.
2.  /etc/sudoers
sudo nano /etc/sudoers
Hier wird folgendes ergänzt (irgendwo in der Datei):
Defaults        requiretty
Defaults:%dialout        !requiretty
Defaults:fhem        !requiretty

fhem ALL=(ALL) NOPASSWD: ALL


Ergebniss -> scripte laufen FB geht nicht mehr.
"Sudoerlaubniss" rückgängig gemacht -> FB läuft - scripte nicht.
Sobald ich also Fhem die Erlaubniss erteile sudo nutzen zu dürfen funktioniert die Fernbedienung nicht mehr.


Wernieman

1. solche Zeilen verwendet man nicht:
fhem ALL=(ALL) NOPASSWD: ALL
Damit machst Du fhem praktisch zum root ... mit allen negativen Folgeerscheinungen.

Anstatt "ALL" schreibt man expliziete Programme rein.

Um es jetzt mal richtig zu machen, wofür brauchst Du sudo?

P.S. Leider findet man immer wieder diese Zeile im WEB .. gehört in die Schublade "gefährliches Halbwissen". Leider auch hier im Forum schon mehr als ein mal gefunden ... :o(
- 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

Hans Preuth

hmm, bei gefährlichem Halbwissen bin ich ziemlich weit Vorne dabei.
Sorry. :-[ Ich habe diese Zeilen natürlich auch aus dem Netz.
Aber ohne laufen ein Teil meiner Scripte nicht. Will sagen, ich kann diese via dummy/notify nicht schalten. Mit diesen Zeilen schon - aber die FB funktioniert nicht. Ohne diese Zeilen funktioniert meine FB. Habe ich hier ein "Rechteproblem"?

Wernieman

Welche Scripte funktionieren nicht?

Ich glaube, Du hast ein "globales" Rechteproblem ...
- 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

Hans Preuth

scripte wie zb.
{system "/home/pi/raspberry-remote/scripte/putzlicht_on.sh&"}
was heißt globales Problem?

Wernieman

#36
Das Du nicht genau weißt, welche Rechte FHEM braucht/nicht braucht.

hast Du irgendwo ein "chown/chmod" ausgeführt?

Diie Frage ist eher, was pasiert in Deinem Script /home/pi/raspberry-remote/scripte/putzlicht_on.sh?
Also welche "Befehle" werden ausgeführt? Da kann man bestimmt viel feiner die rechte dosieren....

Edit:
Bin beruflich Linux-Systemadministrator. Da hat man mit der Feingraduierung von Systemrechten häufiger zu tuhen. Auch das viele Anleitung im "Hardwarebereich" pauschal erstmal zu viele Rechte verteilen ist auch schon heufig aufgefallen ...
- 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

Hans Preuth

ich habe z.b. via :
sudo chmod +x /home/pi/raspberry-remote/scripte/putzlicht_on.sh&
Rechte vergeben. Das habe ich mit allen Scripten im Pfad /home/pi/raspberry-remote/scripte/ xxx.sh&
so gemacht.

Hans Preuth

oh, Moment habe mich versehen nicht: chmod +x home/pi/raspberry-remote/scripte/putzlicht_on.sh&
sondern: chmod +x raspberry-remote/scripte/putzlicht_on.sh&

Wernieman

chmod +x raspberry-remote/scripte/putzlicht_on.sh&

Warum hängst Du ein & ans Ende????

Was mich interessiert, was steht IN Deinen Scripten .. gerne auch per PN oder Mail wenn Du Angst um den Inhalt hast ...
- 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

Hans Preuth

hast ne PN - aber nicht aus Angst. Aber so "müllt" sich der chat nicht so voll.

Wernieman

Naja .. mittlerweile wird es hier ein "privater Chat", deshalb hier eine Anmerkung:
sudo gpio mode 2 out
Der User fhem muß die gpio-Ports nutzen dürfen. Dazu muß er "nur" in der Gruppe gpio sein. Dann braucht er auch das "sudo" nicht mehr.

Dafür (Zitat):
sudo usermod -a -G gpio <Username>


Allerdings würde ich persöhnlich nicht über ein Programm gpio gehen, sondern direkt in die Relevanten Teile schreiben, wie z.B.
echo "23" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio23/direction


P.S. Du hast doch ein aktuelles Debian?
Zitatraspi1:~# cat /etc/debian_version
9.3
- 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

Hans Preuth

meine DEBIAN Vers. 8.0 Jessie - trotz update /upgrade.
Warum sagst Du der user fhem muss "nur" in der Gruppe GPIO sein? Hast Du da Sicherheitsbedenken? - Naja und anlegen müsste man den user fhem halt noch -oder. Ohne sudo wird es alles überschaubarer - so glaube ich.

BTW: hatte ich Dir eigentlich eine 2. PM gesendet - bin mir nicht sicher ob die durchgegangen ist - war vom Handy. 

Egal,war das:

Also ich habe nun die 3 "requiretty" Einträge deaktiviert. Fhem hat leider immernoch root Rechte aber ich kann aus Fhem scripte schalten und die FB funktioniert auch!!

sudo nano /etc/sudoers:


pi ALL=(ALL) NOPASSWD: ALL

#Defaults        requiretty
#Defaults:%dialout        !requiretty
#Defaults:fhem        !requiretty

fhem ALL=(ALL) NOPASSWD: ALL


Aber was ich hier wirklich gemacht habe kann ich nicht beurteilen!! Das war "tray and error" und garantiert Mist. Vielleicht hast Du da eine gescheite Lösung.

Sonst macht er ja eigentlich jetzt genau was er soll was er soll.

Wenn ich jetzt noch mit der IR- FB, ich denke via dummy und  4 notify meine 4 433 MHZ- Aktoren geschaltet bekomme steht schonmal ein Gerüst. Das ist aber ein zweites Kapitel.





 

Wernieman

Würde Dir empfehlen:
Per IR-Fernbediehnung einen Dummy schalten:
z.B. "set DummyIR pause"
Dann kannst Du per notify auf DummyIR:pause trickern und sachen erleidgen lassen

pause ist natürlich eine passende Taste auf der Fernbedienung. Anstatt dessen kannst Du jeden anderen Namen nehmen.

Das "nur" in "" war etwas ironisch gemeint. Dafür must Du natürlich NICHT einen neuen User anlegen, sondern die rechte vom User fhem erweitern. Siehe mein Posting.

- 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

Hans Preuth

Hi - so ich habe heute Zeit gefunden um ein wenig zu basteln.
ich habe fhem der Gruppe gpio hinzugefügt via:
sudo usermod -a -G gpio fhem
Alles schaltet nun ohne "sudo" (fhem IR-FB / irexec) NUR 3 armselige Scripte
kann fhem nur mit root- Rechte ausführen. Alle Scripte liegen in ein und dem selben Ordnerdrwxr-xr-x 2 pi pi 4096 Dez 30 18:19 .
drwxr-xr-x 6 pi pi 4096 Dez 24 17:32 ..
-rwxrwxrwx 1 pi pi   44 Nov 10 20:29 buereg_ob_off.sh
-rwxrwxrwx 1 pi pi   45 Nov  9 22:16 buereg_ob_on.sh
-rwxrwxrwx 1 pi pi   44 Nov  9 22:05 buereg_un_off.sh
-rwxrwxrwx 1 pi pi   46 Nov  9 21:57 buereg_un_on.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 21:00 lafen_off.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:59 lafen_on.sh
-rwxr-xr-x 1 pi pi  321 Nov 21 22:18 nacht_1_on.sh
-rwxrwxrwx 1 pi pi  180 Dez 17 20:47 putzlicht_off.sh
-rwxrwxrwx 1 pi pi  181 Dez 17 20:09 putzlicht_on.sh
-rwxr-xr-x 1 pi pi   46 Nov  7 20:21 receiver_off.sh
-rwxrwxrwx 1 pi pi   48 Nov  7 20:18 receiver_on.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:48 stehl_off.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:47 stehl_on.sh
-rwxr-xr-x 1 pi pi   50 Nov 10 20:08 TV_off.sh
-rwxr-xr-x 1 pi pi   50 Nov 10 20:07 TV_on.sh
-rwxr-xr-x 1 pi pi  135 Nov  8 21:46 woall_off.sh
-rwxr-xr-x 1 pi pi  138 Nov  8 21:45 woall_on.sh

das sind woall_xx.sh, putzlicht_xx.sh und nacht_1_on.sh. waarum???