Docker Terminal User wechseln

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Toni

Benutzer
Registriert
16. Nov. 2009
Beiträge
66
Reaktionspunkte
2
Punkte
8
Wenn ich über die Docker UI mittels Befehl /bin/bash eine neue Terminal Session erzeuge, werde ich standardmäßig als root eingeloggt. Wie kann ich denn hier den Benutzer wechseln?
 
... stimmt nur,wenn im Dockerfile als letztes der "USER root" gesetzt wurde. Wenn keiner gesetzt wurde, dann ist es automatisch "USER root".
Je nach dem ob in einem Image weitere Benutzer angelegt sind (cat /etc/passwd hilft dir das zu sehen) und der Befehl "su" vorhanden ist, kannst Du folgendes versuchen:
Code:
su - {username}

{username} ist dabei entsprechend der Username aus /etc/passwd.

Aber wozu das ganze?!
 
cat /etc/passwd hilft dir das zu sehen

Neben vielen anderen Zeilen sind hier unter anderem die beiden folgenden zu sehen:
Rich (BBCode):
root:x:0:0:root:/root:/bin/bash
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

Der Benutzer www-data ist der Benutzer, um den es geht. Ein Login funktioniert jedoch nicht.
Rich (BBCode):
su --login www-data                            
This account is currently not available.

Wozu das Ganze? Ich habe Nextcloud in einem Docker Container laufen. Nachdem ich nun mehrere Hundert GB an Daten von einem Ende meiner DS ans andere verschoben habe (sprich ins Nextcloud Datenverzeichnis), möchte ich gerne einen rescan durchführen, um die Datenbank zu aktualisieren. Das würde ich gerne aus dem Terminal Fenster heraus machen. Ich kann mich natürlich über SSH auf die DS aufschalten und den Prozess dann von "außen" in Gang bringen. Aber da das Ganze Tage dauern würde, kann ich meinen Rechner halt nicht ausschalten, weil sonst die SSH Verbindung getrennt und der Rescan unterbrochen werden würde.

Rich (BBCode):
$ docker exec --user www-data nextcloud php occ files:scan --all -v
 
Der Shell Login ist auch mit nologin verboten. Evtl geht das auch so:
Rich (BBCode):
$ su -s /bin/bash -c "nextcloud php occ files:scan --all -v" www-data
 
Funktioniert so leider nicht.

Rich (BBCode):
bash: nextcloud: command not found
 
Dann ist nextcloud nicht im Pfad. Da würde Dein docker exec auch nicht funktionieren. Dann musst Du den vollen Path von nextcloud halt mit angeben
 
Diese Befehlszeile funktioniert in einer externen SSH Session.
Rich (BBCode):
$ docker exec --user www-data nextcloud php occ files:scan --all -v

"nextcloud" ist der Name des Docker-Containers.
 
Mit ein bisschen Eigenleistung könnte man dann nicht auf diese Zeile schliessen?
su -s /bin/bash -c "php occ files:scan --all -v" www-data
Ich habe kein nextcloud und kann das nur das normale Linux vorgehen beschreiben.
 
... Aber da das Ganze Tage dauern würde, kann ich meinen Rechner halt nicht ausschalten, weil sonst die SSH Verbindung getrennt und der Rescan unterbrochen werden würde.

Rich (BBCode):
$ docker exec --user www-data nextcloud php occ files:scan --all -v

Dann mach dich doch unabhängig von der SSH-Verbindung ;)

Ich sehe dafür zwei Wege:
- die obere Zeile als Task über die UI anlegen und ausführen lassen; dafür wird nicht mal eine SSH-Verbindung gebraucht
- einen Session Manager (bspw. tmux/SynoCommunity) verwenden; session Manager starten; Befehl ausführen; sich aus der Session auskoppeln.
 
Die erste Vorgehensweise ist eigentlich eine gut Idee. Ich frage mich nur, ob ich da zwischendurch irgendwie mal "reinschauen" kann, wie weit der Scan fortgeschritten ist?

Einen Session Manager kenne ich bis dato noch nicht. Werde ich mir einmal anschauen.

Danke und viele Grüße
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat