Hallo Leute,
ich möchte aus einem Script mit sudo ein shellcommando ausführen, bekomme aber die Fehlermeldung:
sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
Mein Script ist simpel:
#!/bin/bash
#
sudo chown fhem:dialout /opt/fhem/* -R
Direkt aus der shell funktionierts.
Hat jemand einen Tipp für mich, wie ich das hinbekommen kann? Bin leider kein Linux oder Perl-Guru... ;-)
Danke,
Udo
Ich kann dir leider nichts genaues sagen, aber ich denke, dass das Problem sein wird, dass der user unter dem FHEM läuft (wahrscheinlich User "fhem") nicht berechtigt ist, sudo auszuführen.
Vielleicht hilft dir das schon weiter, sonst auf die Linux-Cracks warten ;-)
Hallo Jaydee,
danke für die Antwort.
Hatte fhem schon berechtigt sudo zu machen. Fehlten noch ein paar Einträge in der sudoers.
2 Stunden lesen, dann kommt der Anfänger dann manchmal irgendwann auch selber klar... ;)
Udo
Oh, kannst du kurz beschreiben, wie du es gelöst hast? Für den Zugriff auf die GPIOs des Raspberry Pis braucht man nämlich auch Root-Rechte, und bisher hab ich noch nicht geschafft, dies zu umgehen...
bin grad leider auf dem Sprung und komm erst morgen abend wieder, aber hier kurz skizziert:
in der /etc/sudoers müssen 2 Einträge für fhem eingetragen werden:
1. die Ausnahme notty für fhem
Defaults requiretty
Defaults:%dialout !requiretty
Defaults:fhem !requiretty
und das fhem chown ohne passwort ausführen darf:
fhem UdosDebian = NOPASSWD: /bin/chown
Hatte nen Beitrag gefunden im Netz und die manpages gewälzt. Statt chown kannst Du jedes Kommando angeben oder mehrere mit , hintereinander schreiben. Schau mal in den manpages nach.
Ist zwar sicher ne kleine Einschränkung in der Sichgerheit, aber ich hoffe akzeptabel.
Schreib, wenns klappt oder nicht, dann kann ich morgen abend gern nochmal schauen.
Udo
Hallo Jaydee,
konntest Du mit meiner Antwort etwas anfangen?
Udo
Ich bin leider gerade auch auf dem Sprung und noch nicht zum ausprobieren gekommen, aber auf jeden Fall schon einmal vielen Dank für die Antwort.
Ich werde es testen, sobald es geht, und berichten :-)
Jan