Docker Terminal User wechseln

Status
Für weitere Antworten geschlossen.

Toni

Benutzer
Mitglied seit
16. Nov 2009
Beiträge
61
Punkte für Reaktionen
0
Punkte
6
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?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
... 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?!
 

Toni

Benutzer
Mitglied seit
16. Nov 2009
Beiträge
61
Punkte für Reaktionen
0
Punkte
6
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
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
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
 

Toni

Benutzer
Mitglied seit
16. Nov 2009
Beiträge
61
Punkte für Reaktionen
0
Punkte
6
Funktioniert so leider nicht.

Rich (BBCode):
bash: nextcloud: command not found
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
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
 

Toni

Benutzer
Mitglied seit
16. Nov 2009
Beiträge
61
Punkte für Reaktionen
0
Punkte
6
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.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
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.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
... 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.
 

Toni

Benutzer
Mitglied seit
16. Nov 2009
Beiträge
61
Punkte für Reaktionen
0
Punkte
6
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