Logmeldung ' sudo: a terminal is required'

Begonnen von Shadow3561, 11 Mai 2020, 12:33:46

Vorheriges Thema - Nächstes Thema

Shadow3561

Habe heute eine seltsame Logmeldung bekommen.
Kann mir bitte jemand erklären was es bedeutet und mir bei der Fehlersuche behilflich sein?

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

Otto123

#1
Dein fhem verwendet irgendwo einen Aufruf mit sudo, der user fhem darf es aber nicht.
Eventuell weißt Du wo, ansonsten:
Du kannst den cmdalias grep definieren und Deine Dateien durchsuchen.
Du kannst Dir Deine sudoers Dateien anzeigen lassen.
ls -lha /etc/sudoers.d/
Anschließend die fragliche mit nach den Einträgen auflisten und durchsuchen (cat)
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

betateilchen

Vermutlich liegt es eher daran, dass der user fhem normalerweise keine echte Shell zur Verfügung hat. Er wird standardmäßig mit /bin/false als "shell" angelegt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

viegener

#3
Diese Meldung ist auch normal, wenn sudo aus FHEM für ein shell command aufgerufen wird (wie von Otto bereits gesagt).

Es kann aber sein, dass fhem zwar in sudoers gelistet ist, aber im Normalfall wird dann ein Passwort abgefragt. Dieses geht aber nur wenn es eine interaktive Session (also quasi "ein Terminal") ist. Denn die Nachfrage erfordert eine Terminalumgebung, damit Eingaben maskiert werden (wie üblich bei Passwortabfragen).

Es gibt z.B. 2 Lösungen
- im suoders file (für fhem oder die Gruppe sudo) die direktive "NOPASSWD:" hinzufügen
  z.B: so
     fhem ALL=(ALL) NOPASSWD: ALL
  Änderungen mit visudo vornehmen - dazu gibt es aber genug Google-Hinweise

- das Passwort beim Aufruf mitübergeben und -S als Option

Die letzte funktioniert leider nur, wenn Du den sudo-Aufruf selber machst

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Shadow3561

Komisch,
mein FHEM ist up to Date und der Server läuft seit etwa 2 Jahren ohne eine solche Meldung.
Ich habe nichts am System geändert und auch mehrere Monate keine neuen Geräte installiert oder definiert.

Der letzte Server Neustart war vor mehreren Wochen und mein FHEM und Heimnetz ist von aussen nur über VPN erreichbar.

Dann werde ich mal versuchen rauszufinden wer oder welches Modul/Gerät einen Terminalzugriff benötigt.

Kommt mir alles ganz schön komisch vor. Seit mehreren Jahren sehe ich diese Logmeldung zum ersten mal.

Mit freundlichen Grüßen

Christoph Morrison

#5
Zitat von: Shadow3561 am 11 Mai 2020, 18:41:27
mein FHEM ist up to Date und der Server läuft seit etwa 2 Jahren ohne eine solche Meldung.
Ich habe nichts am System geändert und auch mehrere Monate keine neuen Geräte installiert oder definiert.

Wenn du zwei Jahre auch keine Systemupdates gemacht hast, würde ich mir doch mal Sorgen machen.
Wenn du FHEM aktualisierst, bekommst du ja auch neue Software, die ggf. ihre Funktion geändert hat. Deshalb solltest du unbedingt mal in den Modulen, die du nutzt, nach sudo-Aufrufen suchen (nur nach sudo suchen wird dir einiges an Treffern liefern, da das Wort auch öfter mal in der CRef-Sektion vorkommt). Hier die Dateien aus FHEM/, die sudo enthalten (mit Anzahl des Vorkommens):


./36_JeeLink.pm:1
./38_CO20.pm:1
./39_alexa.pm:1
./39_gassistant.pm:1
./44_TEK603.pm:1
./50_TelegramBot.pm:1
./52_I2C_MMA845X.pm:1
./55_DWD_OpenData.pm:1
./57_SSCal.pm:1
./74_XiaomiBTLESens.pm:1
./96_SIP.pm:1
./98_inotify.pm:1
./98_vitoconnect.pm:1
./Meta.pm:1
./UConv.pm:1
./10_GFPROBT.pm:2
./30_tradfri.pm:2
./42_SYSMON.pm:2
./51_I2C_BMP180.pm:2
./51_I2C_TSL2561.pm:2
./70_SamsungAV.pm:2
./70_VIERA.pm:2
./76_SMAInverter.pm:2
./76_SMAPortal.pm:2
./93_DbRep.pm:2
./98_WOL.pm:2
./00_SONOS.pm:3
./14_SD_WS09.pm:3
./71_YAMAHA_MC.pm:3
./73_MPD.pm:3
./97_PiXtendV2.pm:3
./98_Verkehrsinfo.pm:3
./WMBus.pm:3
./31_Nello.pm:4
./36_WMBUS.pm:4
./72_FRITZBOX.pm:4
./98_BOSEST.pm:4
./98_UbiquitiMP.pm:4
./98_systemd_watchdog.pm:4
./00_SIGNALduino.pm:5
./38_Broadlink.pm:6
./55_PIFACE.pm:7
./38_BEOK.pm:8
./98_GOOGLECAST.pm:8
./42_SMARTMON.pm:9
./49_SSCam.pm:9
./74_Nmap.pm:9
./37_echodevice.pm:10
./42_AptToDate.pm:10
./51_RPI_GPIO.pm:10
./93_DbLog.pm:10
./98_Hyperion.pm:10
./98_serviced.pm:10
./98_Text2Speech.pm:11
./42_npmjs.pm:15
./93_Log2Syslog.pm:15
./73_DoorBird.pm:16
./98_Installer.pm:19
./00_RPII2C.pm:21


Kannst ja mal schauen ob du eines davon nutzt und dann musst du halt genauer in der Datei nachschauen, in welchem Kontext sudo erwähnt wird.

amenomade

Zitat von: viegener am 11 Mai 2020, 13:37:43
- im suoders file (für fhem oder die Gruppe sudo) die direktive "NOPASSWD:" hinzufügen
  z.B: so
     fhem ALL=(ALL) NOPASSWD: ALL
Grrrrr !  :o :'(
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Tungsten

Zitat von: Shadow3561 am 11 Mai 2020, 12:33:46Habe heute eine seltsame Logmeldung bekommen.
Kann mir bitte jemand erklären was es bedeutet und mir bei der Fehlersuche behilflich sein?

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

Bei mir kommt die Meldung nun auch mehrfach pro Stunde im Log, jedoch auf Deutsch:

sudo: Zum Lesen des Passworts ist ein Terminal erforderlich; verwenden Sie entweder die Option -S, um aus der Standardeingabe zu lesen oder richten Sie das Askpass-Hilfsprogramm ein
sudo: Ein Passwort ist notwendig

@Shadow3561 wie hast du das gelöst?

Otto123

eigentlich stehen alle Schritte zur Lösung schon hier, dass Dein Meldung in deutsch kommt liegt einfach an Deinem auf "deutsch" gestelltem System.
  • Suchen welchen Befehl Du mit sudo ausführst.
  • Überlegen ob es wirklich sein muss - meist ist es nur "das dünne Brett bohren".
  • Wenn es denn sein muss, je nach System diesen Befehl in eine  Datei (Beispiel) /etc/sudoers.d/010_fhem-nopasswd mit visudo eintragen.
So in etwa:
fhem ALL=(ALL) NOPASSWD: /pfad/BefehlDas Beispiel von viegener macht fhem für alles zum sudo, das ist ein böser Fehler!

Hier noch ein Beispiel mit Erklärung.

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

Tungsten

Danke Otto, hatte vor ein paar Tagen schon nach der deutschen Fehlermeldung gesucht aber nichts gefunden. Hab jetzt den Beitrag mit der englischen Meldung gefunde und die deutsche dazu gepackt, damit andere das Problem schneller finden bei der Suche. Warum es mir deutsch angezeigt wird ist klar. ;-)

Ich hatte schon gesucht wo ich sudo nutze und nur einen Eintrag in 99_myUtils.pm gefunden, wo ich mal wegen einem shutdown experimentiert habe.

sub rasp_shutdown()
{
my @processes = `sudo shutdown -h now`;
}

Hab es zwar jetzt auskommentiert, aber es kommt im Log immer wieder die Meldung.

Wie finde wer das unregelmäßig aufruft, auch wenn sudo nicht ausgeführt wird?

In fhem.cfg finde ich auf jeden Fall nichts.

Otto123

es gibt auch Module die Befehle per sudo ausführen. Du kannst die commandref mal nach sudo durchsuchen und schauen ob Du die Module verwendest. Du findest allerdings viele setup Anweisungen ;)
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

Tungsten

uff, ist das dein Ernst?

Das ist ja die Nadel im Heuhaufen suchen, zumal es die deutsche und englische commandref gibt und beide nicht 100% synchron sind.

Das Problem muß mit einem Update gekommen sein, da ich in den letzten Monaten keine neuen Module eingesetzt habe und die Meldung früher nicht im Log war.

Otto123

Zitat von: Tungsten am 10 Mai 2023, 18:19:38Bei mir kommt die Meldung nun auch mehrfach pro Stunde im Log,
Alternativ musst Du Dich so herantasten: Welches Modul wird denn mehrfach pro Stunde ausgeführt? Oder welche Logmeldungen stehen davor oder danach? Da der Befehl nicht ausgeführt werden kann, müsste es ja zu Fehlern kommen oder Dir müssten Werte fehlen.
Diese Meldung ist ja kein echter gewollter Logeintrag sondern eine Fehlermeldung über stdout die bei FHEM dann ins Log eingestreut wird.
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

Christoph Morrison

Die CRef kommt ja aus den Modulen (idR). Ich hab vor zwei Jahren oder so hier eine Liste gepostet mit Modulen, die sudo benutzen bzw. erwähnen, da kannst du mal gucken ob du eines oder mehrere davon benutzt. So viele sind das eigentlich nicht.

Ach und wenn du es gefunden hast, mach einen Bug auf. Solche Fehler sollte der Modulautor angemessen behandeln.

JoWiemann

Zitat von: Tungsten am 12 Mai 2023, 09:52:13uff, ist das dein Ernst?

Das ist ja die Nadel im Heuhaufen suchen, zumal es die deutsche und englische commandref gibt und beide nicht 100% synchron sind.

Das Problem muß mit einem Update gekommen sein, da ich in den letzten Monaten keine neuen Module eingesetzt habe und die Meldung früher nicht im Log war.

Dann schon mal von mir: 72_FRITZBOX.pm erwähnt sudo als Hinweis in Kommentaren, wie Pakete nachinstalliert werden können.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM