So beheben Sie Bash oder Auto-Run / Bin / Bash bei der SSH-Anmeldung

16

Wenn rootich mich auf meinem Server anmelde, funktioniert alles einwandfrei, aber wenn ich mich als myusernameBash anmelde, funktioniert das nicht richtig.

Die Zeile beginnt mit:

$ 

Anstatt von

myusername@myserver:~$

und alle Sondertasten wie die Pfeiltasten, Tabulatortasten usw. funktionieren nicht.

Wenn ich tippe bin/bash, funktioniert es wieder, aber ich möchte das Problem beheben oder bin/bashbeim Anmelden automatisch starten . Wie kann ich das beheben?


quelle

Antworten:

16

Sie müssen nur Ihre Shell ändern. Führen Sie als dieser Benutzer Folgendes aus:

$ chsh -s /bin/bash

Dann melden Sie sich ab und wieder an.

Danach sieht die Eingabeaufforderung nicht mehr so ​​aus, wie Sie es möchten. Sie müssen die PS1-Variable Ihrer Umgebung anpassen.

EEAA
quelle
Dies ist tatsächlich gefährlich, da die Frage nach dem rootBenutzer gestellt wird. Er benutzt wahrscheinlich kein Linux. Root sollte bei der Standard-Shell bleiben, da der Hersteller wahrscheinlich damit rechnen wird, dass dies der Fall ist kshoder was auch immer sie gewählt haben. Stattdessen lautet die eigentliche Antwort "Sie sollten sich sowieso nicht als root anmelden".
Bahamat
12

Sie müssen Ihre Shell ändern. Führen Sie den Befehl aus

chsh -s /bin/bash

Melden Sie sich dann erneut an.

Nicht alle Benutzer haben jedoch das Recht, ihre eigene Shell zu ändern. Wenn Sie verwenden, sudodenken Sie daran, Ihren Benutzernamen zum chshBefehl hinzuzufügen als

sudo chsh <username> -s /bin/bash

Andernfalls ändern Sie versehentlich die Shell für root.

Mikael Fremling
quelle
Gutes Argument. Erweitert die Antwort leicht.
Mikael Fremling
Ich war sehr naiv zu versuchen: sudo chsh -s /bin/bashda mein Benutzer keine Berechtigung zum Ändern der Shell hatte. Ihre Antwort hat mir geholfen, das Problem zu lösen. Vielen Dank!
Edenshaw
5

Ein möglicher Grund ist, dass die Standard-Shell von myusername nicht bash ist.

Sie können die Shell Ihres aktuellen Benutzers überprüfen mit:

  • echo ${SHELL}
  • echo $0

Um die Benutzeroberfläche dauerhaft zu ändern, siehe man chsh zB:

chsh -s /bin/bash
H.-Dirk Schmitt
quelle
2

Wenn Ihr sudo-Benutzerkennwort deaktiviert ist, können Sie das /etc/passwddirekt bearbeiten , die Zeile suchen, in der sich Ihr Benutzer befindet, und den Shell-Pfad in ändern /bin/bash.

Hier ist die Erklärung des Formats / etc / passwd .

Foman
quelle
0

Ich wollte nur noch eine Sache hinzufügen.

Wenn sudo-Zugriff erforderlich ist, um die Bash für diesen Benutzer zu ändern, müssen Sie auch Ihren Benutzernamen im sudo-Befehl angeben, da er ohne Benutzernamen für den Root-Benutzer gilt.

$ sudo chsh -s /bin/bash <user>
Prateek
quelle