Autor Thema: Im Terminal des Docker keine Sudo-Befehle  (Gelesen 7660 mal)

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Im Terminal des Docker keine Sudo-Befehle
« am: 16 November 2020, 13:58:27 »
Hallo, ich kann im Container über den Button Terminal keine sudo-Befehle absetzen.
Es kommt beispielsweise nur folgendes zurück:
sudo: error in /etc/sudo.conf, line 0 while loading plugin "sudoers_policy"                                                                                                                                                                                                                                                       
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner                                                                                                                                                                                                                                                                   
sudo: fatal error, unable to load plugins

Da soweit ich es gesehen habe, andere Befehle funktionieren und die Rückmeldung es ja indirekt auch sagt, hat das Terminal offenbar keinen Schreibzugriff.
Frage ist nun, was muss ich tun, damit ich auch Sudo-Befehle über dieses Terminal absetzen kann.

Und bitte keine Verweise auf Portainer, damit komme ich überhaupt nicht klar. Sollte wirklich die allerletzte Notlösung sein und dann auch nur mit einer Schritt-für-Schritt-Anleitung.

Offline Eisix

  • Hero Member
  • *****
  • Beiträge: 1085
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #1 am: 16 November 2020, 14:11:26 »
Hallo,

musst du da überhaupt sudo Befehle absetzen? Bis du da nicht root?
Tipp mal id

Gruß
Eisix

Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7727
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #2 am: 16 November 2020, 15:19:15 »
Innerhalb eines Containes bist Du root ... es sei denn, in der Config wurde anders gearbeitet
- 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

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #3 am: 16 November 2020, 15:36:16 »
Ich will den gassistant installieren und alle Quellen geben immer einen sudo-Befehl dafür an.

Rückmeldung von id:
uid=0(root) gid=0(root) groups=0(root)
Hab schon probiert den Befehl sudo npm install -g gassistant-fhem --unsafe-perm ohne sudo davor einzugeben, auch in anderen Variationen habe ich es probiert, folge bei allen Variationen war ein Abbruch mit einer Fehlermeldung, das entweder gassistant nicht gefunden wird oder ein Befehlsteil des installbefehls falsch ist bzw. fehlt

« Letzte Änderung: 16 November 2020, 15:40:10 von Superposchi »

Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7727
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #4 am: 16 November 2020, 15:56:00 »
sudo brauchst Du,m um root zu werden ... aber laut "uid=0(root) gid=0(root) groups=0(root)" bist Du root. Mache es also einfach mal ohne sudo.

Hinweis:
Bitte versuche mal zu verstehen, was Du machst. Das blinde apptippen von irgendwelchen Anleitungen im Netz bringt Dein System gleich in Probleme ....
- 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

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #5 am: 16 November 2020, 23:05:57 »
Wie cih im Post darüber geschrieben habe, habe ich alle möglichen Kobinationen probiert, darunter selbstverständlich auch einfach ohne das sudo

Aber damit mir das auch geglaubt wird, habe ich es gerade eben noch mal gemacht. Hier das Ergebnis:
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown
Wird statt mit Code 0 wie bei einer erfolgreichen Prozedur mit Code 126 beendet.

Offline Eisix

  • Hero Member
  • *****
  • Beiträge: 1085
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #6 am: 17 November 2020, 07:36:27 »
npm ist installiert und in der PATH variable?
Tipp mal

which npm

Gruß
Eisix

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #7 am: 17 November 2020, 08:30:27 »
Wird mit Code 1 beendet ohne eine Ausgabe zu erzeugen

Offline Eisix

  • Hero Member
  • *****
  • Beiträge: 1085
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #8 am: 17 November 2020, 15:24:11 »
Ist npm installiert?

Was wird angezeigt wenn du nur

npm

ausführst.

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #9 am: 17 November 2020, 16:01:50 »
Wird mit Code 126 beendet und gibt folgendes zurück:
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown

Online Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7727
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #10 am: 17 November 2020, 16:07:41 »
Was ist das für ein Container?
Der "offizieller" FHEM Container?
- 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

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #11 am: 17 November 2020, 22:11:15 »
Ja, der offizielle Fhem-Container auf einem QNAP NAS mit ARM-Achitektur.

Offline kadettilac89

  • Hero Member
  • *****
  • Beiträge: 1474
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #12 am: 18 November 2020, 07:56:42 »
Frage 1:
Welches Image genau? docker pull fhem/fhem (wie empfohlen) oder docker pull fhem/fhem-arm64v8_linux??

Frage 2:
Hast du mal die empfohlene Installationsoption getestet? Du willst Package "gassistant-fhem" installieren wie ich das verstehe.

https://github.com/fhem/fhem-docker/#add-custom-packages

Add custom packages
You may define several different types of packages to be installed automatically during initial start of the container by adding one of the following parameters to your container run command:

-e NPM_PKGS="package1 package2"

Frage 3: hast du mal die Definition von gassistant im Docker getestet? Ich dachte gassistant ist im Docker-Image sowieso drin. Ich nutze es, kann mich aber nicht erinnern, das installiert zu haben.

S. Code Zeile 400 ff
# Add nodejs app layer
RUN if ( [ "${NPM_PKGS}" != "" ] || [ "${IMAGE_LAYER_NODEJS}" != "0" ] || [ "${IMAGE_LAYER_NODEJS_EXT}" != "0" ] ) && [ "${ARCH}" != "arm32v5" ]; then \
      LC_ALL=C curl --retry 3 --retry-connrefused --retry-delay 2 -fsSL https://deb.nodesource.com/setup_10.x | LC_ALL=C bash - \
      && LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
           nodejs \
      && if [ ! -e /usr/bin/npm ]; then \
           LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
             npm \
      ; fi \
      && npm install -g --unsafe-perm --production \
          npm \
      && if [ "${NPM_PKGS}" != "" ]; then \
          npm install -g --unsafe-perm --production \
           ${NPM_PKGS} \
         ; fi \
      && if [ "${IMAGE_LAYER_NODEJS_EXT}" != "0" ]; then \
           npm install -g --unsafe-perm --production \
            alexa-cookie2 \
            alexa-fhem \
            gassistant-fhem \     <<<-----------------
            homebridge \
            homebridge-fhem \
            tradfri-fhem \
        ; fi \
      && LC_ALL=C apt-get autoremove -qqy && LC_ALL=C apt-get clean \
      && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ~/.[^.] ~/.??* ~/* \
    ; fi

Edit: Nachtrag, welche CPU + OS hast du? 32bit installiert kein NPM wenn ich den Code im Dockerfile richtig interpretiere. 
« Letzte Änderung: 18 November 2020, 08:21:15 von kadettilac89 »

Offline Superposchi

  • Sr. Member
  • ****
  • Beiträge: 705
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #13 am: 18 November 2020, 09:21:12 »
Also zu 1) soweit ich mich erinnern kann habe ich einfach pull fhem/fhem genommen. Kann man das irgendwie kontrollieren?
Zu 2) ich will eigentlich Fhem-Connect nutzen, dafür ist dieses gassistant-fhem wohl Voraussetzung. Doch der Befehl zum installieren funktioniert halt nicht bei mir. Mehr kann ich dazu nicht sagen, da es meinen Horizont aktuell übersteigt.
Zu 3) nein habe ich nicht, da ich auch gar nicht wüsste wie man das macht. Ich sehe nur, dass im erstellten fhem-connect-Device eine Meldung steht, die anzeigt, das gassistant-fhem fehlt. Entsprechendes List kann ich gerne nachreichen wenn gewünscht.

Zum Nachtrag:
Ich habe eine QNAP TS-431 X2 mit Annapuna Labs Alpine AL314 Quad-Core ARM Cortex-A15 CPU mit 1,7 GHz und nutze die aktuellste Firmwareversion vom NAS (QTS 4.5.1.1.480 Build 20201108)
Denke mal das sich die Frage auf das NAS bezieht, oder?

Offline kadettilac89

  • Hero Member
  • *****
  • Beiträge: 1474
Antw:Im Terminal des Docker keine Sudo-Befehle
« Antwort #14 am: 18 November 2020, 09:55:08 »
vermutlich wird für 32bit arm-CPU kein NPM im Docker installiert. Sehe zwar nur die Einschränkung auf arm32v5, deine CPU müsste arm32v7 sein. Kann aber sein, dass auch dafür die npm nicht installiert werden. Entweder wegen geringer Verbreitung generell 32bit nicht mehr, oder weil benötigte Pakete nicht (mehr) in 32 bit verfügbar sind.

Du kannst:
1) mal zum Test das Image "docker pull fhem/fhem-arm32v7_linux" testen. Vielleicht ist die Behandlung mit drin. Obwohl ich davon ausgehe, dass per Default Image sowieso der richtige Build ausgewählt wird

2) npm manuell installieren, Anleitung müsste diese hier passen ..... https://www.instructables.com/Install-Nodejs-and-Npm-on-Raspberry-Pi/

3) Das Thema im Docker Thread ansprechen

Ach ja ... mach ein Backup bevor du rumspielst damit du keine Daten verlierst.