webentwicklung-frage-antwort-db.com.de

Benutzer existiert nicht in / etc / passwd, wenn versucht wird, die Standard-Shell zu ändern

Ich möchte meine Standard-Shell von tcsh auf bash ändern. Also habe ich es versucht und das ist passiert:

>Sudo chsh userid
Changing the login Shell for userid
Enter the new value, or press ENTER for the default
        Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd

In der Tat bin ich nicht in/etc/passwd. Ich weiß nicht warum.

Was kann ich machen?

20
rmp251

Mein Computer ist Teil eines Netzwerks, das die verteilte Authentifizierung verwendet, sodass meine Benutzerdaten nicht in der lokalen Datei/etc/passwd angezeigt werden (sondern mit getent passwd userid angezeigt werden). (danke @steeldriver) In meinem Fall musste ich chsh auf einer Core-Maschine machen.

12
rmp251

Es gibt eine Problemumgehung für gnome-terminal:

  1. Gehe zu Bearbeiten -> Profileinstellungen -> Titel und Befehl
  2. Check Führe einen benutzerdefinierten Befehl anstelle meiner Shell aus
  3. Geben Sie bash als Benutzerdefinierter Befehl (oder fish oder etwas anderes) an.
11
MrMeszaros

Wenn Sie die Shell für Ihren Benutzer ändern möchten, müssen Sie nicht root werden. Tipp einfach:

chsh

ohne Sudo und ohne Argumente.


Siehe auch man chsh:

 Der Befehl chsh ändert die Benutzeranmeldungs-Shell. Dies bestimmt den Namen 
 Des anfänglichen Anmeldebefehls des Benutzers. Ein normaler Benutzer kann die 
 Login-Shell nur für seinen eigenen Account ändern; Der Superuser kann die Login 
 Shell für jedes Konto ändern. 
5

Wenn Sie die LDAP-Authentifizierung über PAM oder ähnliches verwenden, müssen Sie Ihre Antwort auf Ihrem LDAP-Server finden. Richten wir es auf Microsoft AD aus. In diesem Fall befindet sich Ihr Domänenkonto bei der Anmeldung nicht in /etc/passwd, aber Sie können Ihre Benutzereigenschaft in AD durch getent passwd | grep user sehen.

Wenn am Ende angezeigt wird, dass Ihre Shell /bin/csh ist, liegt dies daran, dass in Ihrer AD ein Attribut dafür vorhanden ist. Wenn Sie also ein Administratorkonto in AD haben, können Sie dieses Problem selbst beheben. Andernfalls weisen Sie Ihren AD-Administrator an, die erweiterten Funktionen auf der Registerkarte Anzeigen von Active Directory-Benutzern und -Computern> Benutzereigenschaften zu aktivieren > UNIX-Attribute . Dort können Sie die Login-Shell auf /bin/bash ändern.

Vergiss nicht zu rennen:

Sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash

Quelle: Benutzer existiert nicht in/etc/passwd, wenn versucht wird, die Standard-Shell zu ändern .

5
Masoud

Wenn Sie Ihren Benutzernamen vergessen haben, können Sie den Befehl whoami verwenden, um sich an Sie zu erinnern.

Also versuchen Sie es mit:

Sudo chsh $(whoami)

Wenn es in der Tat keine Zeile gibt, die mit Ihrem Benutzernamen in der /etc/passwd -Datei beginnt (was unerklärlich erscheint), können Sie eine neue hinzufügen:

username: x: 1000: 1000:ihr richtiger Name,:/Zuhause/username:/bin/bash

Siehe auch: Grundlegendes zum/etc/passwd-Dateiformat .

2
Radu Rădeanu