Benutzer am Terminal wechseln

Benutzer am Terminal wechseln

Ich wechsle den Benutzer mit dem folgenden Befehl:

sudo su - userName

Auf meinem Terminal habe ich immer:

user@user directory $ (some command)

Aber wenn ich den Benutzer wechsle, habe ich nur:

$ (some commands)

Es ist schwer zu erklären, was ich meine, aber ich bin neu bei Linux und habe dies in anderen Fragen nicht gefunden. Wie behalte ich diese gesamten Daten vor dem $-Zeichen nach der erneuten Anmeldung?

Bearbeiten: Ok, bei mir funktioniert es. Ich habe den Benutzer mit dem Befehl „adduser name“ neu erstellt.

Aber ich habe noch eine andere Frage. Dieser Befehl erstellt das /home-Verzeichnis, aber es ist leer. Gibt es einen Befehl zum Initialisieren von /home für einen neuen Benutzer?

Antwort1

Aber ich habe noch eine andere Frage. Dieser Befehl erstellt das /home-Verzeichnis, aber es ist leer. Gibt es einen Befehl zum Initialisieren von /home für einen neuen Benutzer?

Die Lösung der zweiten Frage löst auch die erste. Ihr neuer Benutzer hat nicht alle Standardkonfigurationsdateien in seinem Home-Verzeichnis und daher zeigt die neue Shell keine schicke Eingabeaufforderung usw. an.

Der Standardbefehl zum Erstellen eines neuen BenutzersUndInitialisieren Sie sein Home-Verzeichnis mit dem Inhalt von /etc/skel:

useradd -m

Und wie bereits erwähnt, haben einige Distributionen falsche Standardwerte, sodass Sie möglicherweise weitere Optionen hinzufügen möchten:

useradd -m -s /bin/bash

Weitere Einzelheiten erhalten Sie unter:

man useradd

Es gibt einige ausgefallene Tools auf höherer Ebene, die speziell für Distributionen gedacht sind. Ein Beispiel, das unter Debian und ähnlichen Programmen verwendet wird, wurde bereits in den Kommentaren zu Ihrer Frage erwähnt:

adduser

Darüber hinaus gibt es eine Konfiguration in /etc, die useraddein ähnliches Verhalten bewirken kann useradd -m, aber meiner Meinung nach ist es besser, zu lernen, es -mimmer zu verwenden, um Auswirkungen durch unterschiedliche Installationen und Verteilungen zu vermeiden.

-DAus den obigen Kommentaren geht hervor, dass es möglich ist, die Standardeinstellungen mit dem Argument „to“ festzulegen useradd:

useradd -D -s /path/to/default/shell

Antwort2

Sie wechseln zu einem normalen Benutzer und für diesen Benutzer ist kein $PS1 festgelegt. Meiner Meinung nach fügen Sie diesen Benutzer jedoch mit dem Befehl „useradd“ in Debian hinzu. Da die Shell, die Sie mit „useradd“ verwenden, standardmäßig sh ist, können Sie Folgendes versuchen:

chsh -s /bin/bash userName

Dieser Befehl ändert die Shell für den Benutzernamen in /bin/bash. Versuchen Sie dann erneut, für diesen Benutzer zu wechseln. Wenn Sie die Standard-Shell für eine Bash ändern möchten, wenn Sie einen Benutzer mit useradd hinzufügen, können Sie die Datei /etc/default/useradd ändern.

sed -i -e "s@\(^SHELL\).*@\1=/bin/bash@g" /etc/default/useradd

Antwort3

Sie wechseln von einem normalen Benutzer (Sie) zu einem anderen normalen Benutzer, beispielsweise Joe, richtig?
Folgendes ist Ihre Shell-Eingabeaufforderung, definiert in der Umgebungsvariable PS1:

user@user directory $

Nachdem Sie zu Joe gewechselt sind, sehen Sie Joes Shell-Eingabeaufforderung. Und er hat nichts Ausgefallenes in der Eingabeaufforderung angezeigt, also wird nur die Standardeingabeaufforderung angezeigt, die ungefähr so ​​aussieht:

$

Die zweite ist die Standardeinstellung des einfachen Shell-Programms, Ihre ist wahrscheinlich die Standardeinstellung der Linux-Distribution.

Versuchen Sie, PS1 auf denselben Wert wie in Ihrem Konto einzustellen. Das sollte helfen:

user@usersBox directory $ echo "$PS1"

und später

$ PS1="……"
joe@usersBox directory $

Ersetzen Sie …… durch den echooben angezeigten Wert.

Das Wort nach dem „@“ ist normalerweise der Name des Computers, daher nehme ich an, dass Sie dem Computer während der Installation denselben Namen wie Ihren Benutzernamen gegeben haben.
Um es im Beispiel weniger verwirrend zu machen, habe ich den Computernamen in „usersBox“ geändert.

Vielleicht hat er Ihre Variante absichtlich entfernt. Aber wahrscheinlich liegt es an einem zufälligen kleinen technischen Problem, und er wäre einverstanden, wenn Sie es auch für ihn ändern, in seinen Startdateien, wie ~/.bashrc oder ähnlich, je nachdem, welche Art von Shell er verwendet.

verwandte Informationen