*Gelöst* sudo befehl aus FHEM herraus starten

Begonnen von Tueftler1983, 02 September 2022, 17:40:10

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo zusammen, ich habe ein Projekt: Schrebergarten mit Gartenhaus und LTE Router soll eine FHEM instanz bekommen.

Jetzt möchte ich das wenn der Server gestartet ist, Fhem überwacht ob die Internetverbindung besteht..... Das funktioniert mit Lan_Ping

Dann soll FHEM den Befehl geben zum aufbau der VPN Verbindung zu mir nach Hause auf der Console vom Raspberry geschieht dies über sudo vpnc fritzbox.conf

Jetzt die frage wie mache ich das in Fhem ohne Fhem Root rechte zu geben??

Habe es mit ner nleitung versucht in der Sudoers.d eine Datei namens 011_fhem_nopasswd mit dem inhalt echo "fhem ALL=(ALL) NOPASSWD: /vpnc fritzbox.conf" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File


dies funktioniert aber leider nicht habe nach eingabe von "sudo vpnc fritzbox.conf" in der FHEM Commandozeile folgenden Eintrag im fhem.LOG
etc/sudoers.d/011_fhem-nopasswd:1:53: syntax error
echo "fhem ALL=(ALL) NOPASSWD: /vpnc fritzbox.conf" >/etc/sudoers.d/$File
                                                    ^
/etc/sudoers.d/011_fhem-nopasswd:2:32: syntax error
chmod 0440 /etc/sudoers.d/$File
vpnc fritzbox.conf" >/etc/sudoers.d/$File
                               ^

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required


hoffe ihr könnt mir helfen

masl

Statt dem Anlegen vom Sudor mal das probiert?:

"sudo visudo"

Hinzufügen:

Zitatfhem ALL=(ALL) NOPASSWD: ALL

Danach Neustart

Tueftler1983

War in nen anderen Beitrag von abgeraten worden weil fhem dann alles darf.

Beta-User

Das gilt umso mehr, wenn man keine Idee hat, wie das alles zusammenhängt!

Du hast die Datei "falsch" editiert: Das "echo" sollte den Inhalt da reinschreiben, und nicht selbst da reingeschrieben werden... Wenn man das per Editor macht, muss man es anders machen!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Tueftler1983

Okay, kannst du mir da helfen wie sie genau aussehen muss? Bin da etwas unbeholfen.

Beta-User

Zitat von: Tueftler1983 am 02 September 2022, 21:47:13
Okay, kannst du mir da helfen wie sie genau aussehen muss? Bin da etwas unbeholfen.
Jein. Können vielleicht, wollen nur bedingt.

Hilfe zur Selbsthilfe unter Linux-Kommandozeile:
man echo
man chmod
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

#6
Moin,

sieht irgendwie verdächtig nach meinem Artikel aus: https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html
Aber wie kann man das wieder so völlig falsch interpretieren?
Es geht damit los, dass man absolute Pfade verwendet:
which vpnc
Dann führt man dies als Code in der Shell (vorher sudo su) aus und schreibt es nicht wirr in irgendeine Datei!?
die 3. Zeile erzeugt eine Variable
die 4. Zeile schreibt eine Zeile in eine Datei deren Namen aus der Variablen genommen wird
die 5. Zeile setzt Rechte
#!/bin/bash
# ergänze eine Datei zum sudoers Script Verzeichnis /etc/sudoers.d/
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: /pfad/zurDatei/vpnc" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File


Als kleine Einführung in Shell / bash :)

Der Aufruf des Programmes vpnc selbst gehört nicht in diese Datei! Sondern ist dann der Befehl in FHEM! Und zwar wieder am Besten mit kompletten Pfadangaben.

"sudo /pfad/ZurDatei/vpnc /Pfad/ZurDatei/fritzbox.conf"

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

Tueftler1983

Hallo und danke Otto, ja bin irgendwo über ne Seite gestolpert, nur stehe ich mit Linux Immerhoch etwas auf Kriegsfuß.

So zurück zu mir bzw meinem Problem. Wenn ich beim PI auf der console bin, eingeloggt als USER pi, dann brauche ich nur das sudo vpnc fritzbox.conf eingeben.
Der absolute Pfad zur Datei ist /etc/vpnc/fritzbox.conf
Der absulute Pfad zum muss ich gucken...

Der PI ist schon im Gartenhaus, als Alarmanlage und Smarthome Server.

Benachrichtigungen und rudimentäre schaltaufgaben laufen schon über Telegramm

juergen012

#8
was ist mit
({ system ("sudo vpnc fritzbox.conf ")

in einem DOIF?

und mit visudo in sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem    ALL=(ALL) NOPASSWD: ALL



Fhem unter Proxmox

Otto123

Zitat von: Tueftler1983 am 03 September 2022, 19:28:21
Hallo und danke Otto, ja bin irgendwo über ne Seite gestolpert, nur stehe ich mit Linux Immerhoch etwas auf Kriegsfuß.
Ich habe doch aber jetzt genau geschrieben was Du tun kannst? Was hat das mit Kriegsfuß zu tun?
@juergen012 Dein Vorschlag ist mehrfach "böse". :o
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

CoolTux

Zitat von: juergen012 am 04 September 2022, 10:46:31
und mit visudo in sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem    ALL=(ALL) NOPASSWD: ALL


Sorry aber das grenzt ja schon an "Betriebssystem Suizid".
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

Otto123

Zitat von: Tueftler1983 am 03 September 2022, 19:28:21
Der absulute Pfad zum muss ich gucken...
wie gesagt: der Befehl which vpnc sagt es Dir.
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

Wernieman

OT:

finde es schon seltsam, das 2 mal als Lösung FHEM komplette root rechte geben genannt wurden. Und selbst vom Threadersteller abgelehnt wurde *). Liest keiner die Beiträge durch?

*) Kurzgefasst: Gratulation, Du verstehst mehr von Unix-Rechten als manch anderer  ;)
- 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

Tueftler1983

So vielen lieben Dank an alle die geholfen haben, es läuft.

Hatte "nur" nicht verstanden das ich es so komplett im Konsole eingeben soll, die absulute. Pfade waren schnell gefunden und ergänzt.

Ja das Fhem keine Root rechte bekommen soll hatte ich schon vor Jahren gelesen und mich auch immer dran gehalten.

So Fhem in Schrebergarten ist online und Kommuniziert dank VPN und FHEM2FHEM in beide Richtungen und als "Backup" noch via Telegramm.

Vielen lieben dank