FHEM Forum

FHEM => Automatisierung => Thema gestartet von: baukater am 10 Dezember 2016, 10:48:33

Titel: Batch Datei mit Adminrechten ausführen
Beitrag von: baukater am 10 Dezember 2016, 10:48:33
Hallo,

ich habe mir eine batchdatei gechriebben, deren Befehle Adminrechte brauchen.

Die Batch möchte ich mit System ("batch.bat") periodisch aufrufen. Leide bekomme ich immer eine Fehlermeldung

Rufe ich es so auf:
+*4:00 {system("/usr/bin/sudo /opt/fhem/hcitoolbatch.bat")}

erhalte ich diese Meldung:

sudo: no tty present and no askpass program specified
2016.12.10 10:43:25 3: restartBT: -1


Rufe ich es ohne sudo auf
+*4:00 {system("/opt/fhem/hcitoolbatch.bat")}


Can't down device hci0: Operation not permitted (1)
Can't init device hci0: Operation not permitted (1)
Set Low Energy for hci0 failed with status 0x14 (Permission Denied)
hci0: Type: BR/EDR  Bus: USB
BD Address: 00:1A:7D:DA:71:14  ACL MTU: 310:10  SCO MTU: 64:8
UP RUNNING
RX bytes:1737140 acl:80 sco:0 events:14564 errors:0
TX bytes:95014 acl:70 sco:0 commands:7084 errors:20

2016.12.10 10:44:57 3: restartBT: -1



Mein Script:


/usr/local/bin/hciconfig hci0 down
/usr/local/bin/hciconfig hci0 up
/usr/bin/btmgmt le on
/usr/local/bin/hciconfig hc0


Was muss ich denn jetzt ändern? Hab auch schon in der Batchdatei Sudo vorangestellt, auch mit Pfad. geht aber auch nicht
Titel: Antw:Batch Datei mit Adminrechten ausführen
Beitrag von: digiart am 10 Dezember 2016, 15:42:15
Hast Du auch den Eintrag für den Benutzer "fhem" auch in der sudoers-Datei gesetzt?
Titel: Antw:Batch Datei mit Adminrechten ausführen
Beitrag von: Otto123 am 10 Dezember 2016, 16:20:43
Hallo Baukater,

zum ersten geht der Systemaufruf (http://fhem.de/commandref_DE.html#command) auch einfacher:
{system("/opt/fhem/hcitoolbatch.bat")} -> "/opt/fhem/hcitoolbatch.bat"

Bevor Du Dir nach sudo die Zeit versuchst, warum suchst Du nicht danach, die Berechtigungen so zu setzen, dass fhem die Batch ausführen darf!? Meines Wissen gibt es Gruppen für Bluetooth die dies ermöglichen.

Gruß Otto
Titel: Antw:Batch Datei mit Adminrechten ausführen
Beitrag von: baukater am 11 Dezember 2016, 09:12:25
Zitat von: Otto123 am 10 Dezember 2016, 16:20:43
Hallo Baukater,

zum ersten geht der Systemaufruf (http://fhem.de/commandref_DE.html#command) auch einfacher:
{system("/opt/fhem/hcitoolbatch.bat")} -> "/opt/fhem/hcitoolbatch.bat"

Bevor Du Dir nach sudo die Zeit versuchst, warum suchst Du nicht danach, die Berechtigungen so zu setzen, dass fhem die Batch ausführen darf!? Meines Wissen gibt es Gruppen für Bluetooth die dies ermöglichen.

Gruß Otto
ohne system.... führt zu einen Fehler:

2016.12.11 09:09:13 3: restartBT: Unknown command /opt/fhem/hcitoolbatch.bat", try help.

Auch das hinzufügen zur Gruppe bluetooth führt zu keinem Erfolg. Wieder Berechtigungsfehler. Hab den fhem user
auch mal zur Gruppe adm hinzugefügt. Das scheitert ebenfalls.

Frage, nur zur Sicherheit: Wie kann ich feststellen, mit welchme User FHEM tatsächlich ausführt? Weil irgend etwas mach
ich ja noch falsch. :-(
Titel: Antw:Batch Datei mit Adminrechten ausführen
Beitrag von: Otto123 am 11 Dezember 2016, 12:20:00
Zitat von: baukater am 11 Dezember 2016, 09:12:25
ohne system.... führt zu einen Fehler:

2016.12.11 09:09:13 3: restartBT: Unknown command /opt/fhem/hcitoolbatch.bat", try help.

Es führt zu keinem anderen Fehler, du siehst den Fehler nur an andere Stelle. Die Rückgabefunktion beider Aufrufe unterscheidet sich.
Offenbar hast Du nicht nur ein Rechte Problem sondern die Aufrufe in der batch stimmen auch nicht. Aber das ist nur eine Vermutung von mir.

Probiere doch wenn Du willst den Aufruf einfach mit einem Script aus, was auch funktioniert.

Mit welchem User FHEM läuft siehst Du einfach in deinem Logfile beim Start:
Zitat2016.12.04 22:40:37 0: Server started with 36 defined entities (fhem.pl:12680/2016-11-28 perl:5.014002 os:linux user:fhem pid:31448)
Gruß Otto