
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 useradd
ein ähnliches Verhalten bewirken kann useradd -m
, aber meiner Meinung nach ist es besser, zu lernen, es -m
immer zu verwenden, um Auswirkungen durch unterschiedliche Installationen und Verteilungen zu vermeiden.
-D
Aus 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 echo
oben 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.