[Gelöst] GenShellSwitch Can't exec "/home/pi/....

Begonnen von crazysky, 30 Juni 2019, 07:21:42

Vorheriges Thema - Nächstes Thema

crazysky

Hallo zusammen,

ich bin Anfänger und komme an nicht weiter. Ich habe in diesem Forum schon die im Prinzip selbe Frage gesehen, konnte aber nicht auf die selbe Art und Weise lösen (https://forum.fhem.de/index.php/topic,59054.0.html)
Ich möchte meine Rolladen mit fhem steuern und habe sie hierzu gemäß einer Anleitung eingebunden.
Im Protokoll kommt folgende Meldung:
2019.06.30 07:12:44 1: PERL WARNING: Can't exec "/home/pi/fernotron-control/FernotronRemote.sh": Datei oder Verzeichnis nicht gefunden at ./FHEM/00_GenShellSwitch.pm line 131.
2019.06.30 07:12:44 1: PERL WARNING: readline() on closed filehandle DATA at ./FHEM/00_GenShellSwitch.pm line 132.
2019.06.30 07:12:44 2: GenShellSwitch set Rolladen_Buero on

Die Verzeichnisse existieren.
Ich habe schon das gemacht:
fhem ALL=(ALL) NOPASSWD:/home/pi/fernotron-control

Was könnte ich noch tun?

mfg

Otto123

Hi,

zeig mal die Ausgabe von
ls -lha /home/pi/fernotron-control/FernotronRemote.sh
Berechtigung?
Ausführen Recht gegeben?
Datei enthält Shebang?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

#2
Wie hast du die Script-Datei(en) "angelegt"?

Windows "dazwischen gewesen"?

EDIT: warum hast du die Datei(en) nicht im Home von fhem abgelegt? Also irgendwo /opt/fhem/... Und dann noch die Berechtigungen für den User fhem. Damit hat fhem ganz einfach Zugriff und muss nicht im Home vom User pi irgendwelche Scripte ausführen...

EDIT2: die Einträge in der sudoers braucht es nur, wenn etwas als "root" ausgeführt werden muss... Ist das in/bei dem Script der Fall?

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

crazysky

pi@raspberrypi:~ $ ls -lha /home/pi/fernotron-control/FernotronRemote.sh
-rwxr-xr-x 1 pi pi 16K Jun 29 20:23 /home/pi/fernotron-control/FernotronRemote.sh


das liegt halt in dem pi-Verzeichnis, weil der autor das so angegeben hat. ich denke einfach dass das eine berechtigungssache ist. wie kann ich dafür sorgen, dass der fhem user mit root berechtigung die befehle im /home/pi/fernotron-control Verzeichnis ausführt?

ja, das script wird offenbar als sudo ausgeführt. zumindest lautet der test folgendermaßen und der funktioniert in der console auch:
sudo ./FernotronSend 4564563456345634563456


Vielen lieben Dank schon einmal für die supershcnellen Antworten!

MadMax-FHEM

Dass das mit "sudo" klappt ist klar (sofern die Datei ausführbar und fehlerfrei ist), weil "root" alles darf...

Die Frage war "muss" das Script als "root" ausgeführt werden...

Weil selbst mit dem Eintrag in der sudoers muss ja der Aufruf aus/durch fhem (User fhem) auch mit sudo geschehen...

Passiert das?

Wo hast du das Script etc. her?

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

crazysky

#5
ich weiß leider nicht ob das der fall ist. ich habe keine ahnung davon und wollte es nur via anleitung aufsetzen. hat bis auf diesen punkt bislang ja auch funktioniert ;-/

https://github.com/dasoho/fernotron-control


Otto123

cd /home/pi/fernotron-control
Dort stehen weitere Programme, eventuell fehlen die?
Machst Du den Aufruf mit sudo? Muss ja offenbar so sein...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

crazysky

pi@raspberrypi:~ $ cd ~/fernotron-control
pi@raspberrypi:~/fernotron-control $ ls -la
insgesamt 108
drwxr-xr-x  3 pi   pi  4096 Jun 25 17:02 .
drwxr-xr-x 29 pi   pi  4096 Jun 30 13:00 ..
-rw-r--r--  1 pi   pi  7496 Jun 25 17:02 Fernotron.cpp
-rw-r--r--  1 pi   pi  2164 Jun 25 17:02 Fernotron.h
-rw-r--r--  1 pi   pi  5904 Jun 25 17:02 Fernotron.o
-rwxr-xr-x  1 pi   pi 15421 Jun 29 20:23 FernotronRemote.sh
-rws--x--x  1 root pi 14120 Jun 25 17:02 FernotronSend
-rw-r--r--  1 pi   pi  2095 Jun 25 17:02 FernotronSend.cpp
-rw-r--r--  1 pi   pi  2228 Jun 25 17:02 FernotronSend.o
-rwxr-xr-x  1 pi   pi 14384 Jun 25 17:02 FernotronSniffer
-rw-r--r--  1 pi   pi  2346 Jun 25 17:02 FernotronSniffer.cpp
-rw-r--r--  1 pi   pi  2584 Jun 25 17:02 FernotronSniffer.o
drwxr-xr-x  8 pi   pi  4096 Jun 25 17:02 .git
-rw-r--r--  1 pi   pi   283 Jun 25 17:02 Makefile
-rw-r--r--  1 pi   pi  4293 Jun 25 17:02 README.md


alles ist drin, was dort angegeben ist. hab es genau so gemacht, wie es dort steht.

Otto123

Und wenn Du das in der FHEM Kommandozeile ausführst?
"sudo /home/pi/fernotron-control/FernotronSend 4564563456345634563456"
Was steht dann im Log?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

crazysky

Unknown command sudo, try help.

schon in dem Eingabefeld ganz oben auf der Weboberfläche?

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

crazysky

oh, das hatte ich nicht getan. jetzt kommt im log folgendes:

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben

Otto123

Dann geht sudo nicht. Was hast Du für ein OS auf dem FHEM Server?
Es gibt Systeme da muss man sich einmal interactive mit sudo anmelden und genau diese Frage "beantworten"  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

crazysky

es ist ein raspberry pi:

Raspberry Pi 3 Model B Rev 1.2pi@raspberrypi:~/fernotron-control $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian

Otto123

#14
Da gibt es diese Verhalten normalerweise nicht.

ZitatIch habe schon das gemacht:
Code: [Auswählen]
fhem ALL=(ALL) NOPASSWD:/home/pi/fernotron-control
was genau hast Du da getan?

Man macht es richtigerweise so:
Die sudoers Datei wird NICHT angefasst!!!
Man erzeugt eine neue Datei z.B. /etc/sudoers.d/011_fhem-nopasswd
Dorthinein kommen die Zeilen wie fhem ALL=(ALL) NOPASSWD: /home/pi/fernotron-control

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz