Kein Zugriff auf Datei in sudoers.d

Begonnen von Dracolein, 10 Oktober 2022, 11:58:58

Vorheriges Thema - Nächstes Thema

Dracolein

Hallo zusammen,
ich habe augenscheinlich einen Fehler gemacht und nun Probleme mit meiner FHEM-Installation und dem dort laufenden System.
Ich habe mich erstmals mit dem Modul FHEMInstaller beschäftigt und jenes installiert. Dort erhielt ich via Popup eine Fehlermeldung bzgl. Zugriffsrechte (siehe Anhang1), begann zu googeln und fand hier Hoffnung: https://wiki.fhem.de/wiki/FHEM_mit_sudo

Auf meinem Raspberry Pi war ich im Terminal eingeloggt als User "Pi" und habe dies ausgeführt:
sudo visudo /etc/sudoers.d/011_fhem-nopasswd
und wollte in die neue Datei die Zeile
fhem ALL=(ALL) NOPASSWD:SETENV:  *
einfügen und abspeichern.

Irgendwas lief schief, jedenfalls ist die Datei nun unter /etc/sudoers.d/ erzeugt, ich kann sie aber nicht mehr öffnen oder löschen, da der Besitzer "root" ist.
Wenn ich nun irgendwas im Termial probiere, erhalte ich nur noch:

Zitat
pi@raspberrypi:~ $ sudo rm /etc/sudoers.d/011_fhem-nopasswd
>>> /etc/sudoers.d/011_fhem-nopasswd: Syntax-Fehler near line 1 <<<
sudo: Syntax-Fehler in /etc/sudoers.d/011_fhem-nopasswd bei der Zeile 1
sudo: Keine gültige sudoers-Quelle gefunden, Programmende
sudo: Regelwerks-Plugin konnte nicht initialisiert werden

In diesem Zusammenhang fand ich schon einen älteren Hilfe-Thread in diesem Forum
https://forum.fhem.de/index.php/topic,94896.0.html

blicke aber ehrlicherweise nicht recht durch, was ich nun tun kann.  Ich habe noch keinen Neustart des Systems gemacht, FHEM läuft aktuell und ich habe etwas Panik, nun was falsch zu machen.
Beim Aufsetzen des Pis vor Jahren habe ich alle meine Vorgaben nach Tutorial aufgeschrieben, so auch das Kennwort für den User "Pi" usw. Für den User "root" habe ich nie ein Kennwort o.ä. vergeben (um mich jetzt z.B. als "root" einzuloggen, um diese Datei löschen zu können).

Mein derzeitig einziger Lösungsweg, wenn ich richtig verstanden habe, wäre ein Alternativsystem auf Linuxbasis, dort die SD-Karte mittels USB-SD-Cardreader zu mounten und dann die ensprechende Datei zu löschen. Ein zweiter Raspi und USB-Cardreader wäre vorhanden...

Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Otto123

#1
Hi,

kann mir zwar nicht erklären was da schief ging, aber die Datei wirkt und wirft Fehler. Damit hast Du Dich ev. ausgesperrt aus sudo ;)

Den Begriff SETENV: an der Stelle find ich eigenartig. Ich denke das ist falsch.

Edit: offenbar ein mir nicht bekannter Syntax, dazu würdest Du fhem für alle Befehle im Environment / System zum sudoer machen (wenn ich das richtig interpretiere), dass ist sowieso kein guter Gedanke!

Hier meine Notiz.

ZitatMein derzeitig einziger Lösungsweg, wenn ich richtig verstanden habe, wäre ein Alternativsystem auf Linuxbasis, dort die SD-Karte mittels USB-SD-Cardreader zu mounten und dann die ensprechende Datei zu löschen. Ein zweiter Raspi und USB-Cardreader wäre vorhanden...

Das wäre der Weg :)

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

Dracolein

#2
Zitat von: Otto123 am 10 Oktober 2022, 12:34:27
Den Begriff SETENV: an der Stelle find ich eigenartig. Ich denke das ist falsch.

Ich bin Laie mit Linux & Co. Deshalb schaue ich mir jeden Schritt einzeln an und kontrolliere i.d.R. mehfach nach bzw. lasse eigentlich von flexiblen Spielereien grundsätzlich aus Sicherheitsgründen die Finger. Damit fahre ich mit FHEM seit Jahren eigentlich sehr gut.
Obigen Befehl habe ich dem Popup aus FHEM entnommen, 1:1 kopiert und im Editor eingefügt. Schreibfehler sind ausgeschlossen (weil copy&paste)
Eigentlich bin ich auch recht sicher, danach die Datei im Editor gespeichert und den Editor geschlossen zu haben.
Leider kann ich zur Ursache weiter nichts beitragen.

Nach Feierabend heute nachmittag muss ich zuhause dann physisch mal ran. So ein Mist...

Aus Neugier:
Was passiert jetzt bei einem normalen Restart des Systems? Darf "Pi" sich noch einloggen?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Otto123

Zitat von: Dracolein am 10 Oktober 2022, 12:48:56
(weil copy&paste)
Naja copy & paste sind aus einem Web Interface heraus auch nicht immer ein guter Gedanke, aber im Linux Editor hättest Du eigentümliche Zeichen eigentlich sehen müssen.
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

#4
Ich würde auch so vergehen:
- Pi-Runterfahren
- SD-Card in 2. Rechner
- Mounten
- rm <mountpoint>/etc/sudoers.d/011_fhem-nopasswd
- unmounten
- im Pi reinstecken, hoch fahren und das "beten" nicht vergessen  ;)

Generell: Vergieb einem Deamon so wenig Rechte wie möglich! (Wie Otto schon andeutete)

SETENV giebt es bei sudoers ...
https://serverfault.com/questions/480136/how-do-i-set-both-nopasswd-and-setenv-on-the-same-line-in-sudoers

Edit:
Komische Zeichen (wie z.B. Zeilenumbrücke Windows), siehst Du im  Editor nicht. Würde hier auch vorsichtig mit copy&paste sein ...
- 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

Dracolein

Wegen des Linux Dateisystems kann ich Windows- und macOS-basierte Systeme für das Vorhaben vergessen, oder? 
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Wernieman

Da ich davon ausgehe, das Dein Windows/MacOS kein ext3 lesen kann *)  ... ja ....
Fallst Du eine 2. SD-Card hast, kannst Du auch dort ein reines "Life" System installieren, booten und mit einem CardReader ....

*) Es soll mitlerweile für Windows einen ext3 Treiber geben. Ob es stimmt und er funzt ?????
MacOS kenne ich zuwenig, aber so wie ich Apple einschätze ..... nein
- 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

Otto123

ob mac geht weiß ich nicht, Du kannst aber irgendein linux live System nehmen (USB Stick), das funktioniert sogar an deinem Raspberry.

Ganz simpel für den Laien wäre:
SD Card raus und in den Reader. Reader an den raspberry stecken
andere SD Card mit Raspberry OS Lite bestücken und booten
SD Card Reader mounten ;)

Edit: war ich etwas langsam ;)
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

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

Wernieman

Gibt aber besser .. war der erste Fund von Google
- 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

Dracolein

#10
Feedback:

Das Löschen der besagten Datei mithilfe der gemounteten SD-Karte in einem Cardreader auf einem anderen Raspberry Pi System war unkompliziert und erfolgreich. Puh.... darauf gleich erstmal ein Bier und am Wochenende ein Backup, bevor ich wieder was rumprobiere.

Eigentlich hatte ich gehofft, mithilfe des FHEMInstaller Moduls auf einfachere Art & Weise Linux-Pakete installieren zu können usw.
Wenn ich nur wüsste, was schief gelaufen ist...

Ein get fheminstaller checkPrereqs ergibt - siehe Anhang -
Zu updaten wäre entsprechend genug, was ich auch gern befolgen würde.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Otto123

Ich verwende das Installermodul nur um zu ermitteln was dem System so fehlt. Siehe mein Artikel.
Ein latentes Problem: der Maintainer des Moduls ist derzeit nicht aktiv.
Update im System mach ich regelmäßig mit dem package manager apt ... Ich selbst installiere ungern mit CPAN (also Perlmodule)

Ich schau mal ob ich finde, was das Installermodul wirklich an sudo Rechten brauchen würde.
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

Und gerade, wenn man nicht Linux-afin ist, sollte man anstatt CPAN apt nehmen. Leider mögen vor allem Entwickler CPAN (u.Ä.) um den "neuen Scheiß" zu haben. Beim nächsten Komplettupdate macht aber gerade das dann Probleme.

(Sorry, kenne ich von meiner letzten Firma genügend ;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

Dracolein

#13
Noch eine Frage:

Seit diesem Problem hier vor einigen Tagen, was nun augenscheinlich gelöst wurde, beobachte ich täglich 2-3 Zeiträume mit diversen Logeinträge über jeweils etwa 15-20 Minuten vieler Module, die timeouts und Verbindungsprobleme melden. Es wirkt, als sei der FHEM-Server auf dem Raspberry Pi vorübergehend vom Netzwerk abgeschnitten.

Das Dingen hängt per LAN Kabel im Unifi-Netz, was keinerlei Auffälligkeiten meldet und keine kürzlichen Updates oder änderungen erhielt. Lediglich der zeitliche Zusammenhang zu dieser Problematik fällt mir auf.
Möglicherweise habt Ihr eine Idee...

---------------------------------------
Davon ab sind bei mir einige Baustellen, wie es scheint, siehe Anhang.
Ich würde dann als unerfahrener Linuxianer per Terminal via
sudo apt-get update
neue Packetinfos einlesen und anschliessend per
sudo apt-get install ...
neue Pakete installieren, nur scheitere ich aktuell daran die Paketbezeichnungen zu ermitteln für notwendige Pakete laut Screenshot.
Am Beispiel Cache::Cache leite der Link aus FHEM hierher: https://metacpan.org/pod/Cache::Cache und dort unter "Install Instructions" erscheint
Zitat
To install Cache::Cache, copy and paste the appropriate command in to your terminal.

cpanm

cpanm Cache::Cache

CPAN shell

perl -MCPAN -e shell
install Cache::Cache
Manches findet sich via Google, aber bin unsicher ob es exakt das Paket ist, was gefordert wird. z.B.
sudo apt install libsocket6-perl
sudo apt-get install libdatetime-format-strptime-perl
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Wernieman

Ein Großér Nachteil des Modules ist, das es eben auf CPAN und nicht auf die Packet-Quellen der Distri verweist. Irgendwo hatte Otto mal gepostet, wie man einfach ermitteln kann, welche Distri-Pakete welchen CPAN-Module entspricht.

Hast Du schon mal Module per CPAN nachinstalliert?
- 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