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 tun?
getent passwd <userid>
). Ich denke, obchsh
in diesem Fall Laufen unterstützt wird, kann von den Einstellungen in/etc/pam.d/
Antworten:
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.
quelle
Es gibt eine Problemumgehung für
gnome-terminal
:bash
als kundenspezifische Befehl (oderfish
, oder irgendetwas)quelle
Wenn Sie die LDAP-Authentifizierung über PAM oder ähnliches verwenden, müssen Sie Ihre Antwort auf Ihrem LDAP-Server finden. Lassen Sie es uns auf Microsoft AD ausrichten. In diesem Fall befindet sich Ihr Domänenkonto nicht
/etc/passwd
bei der Anmeldung, aber Sie können Ihre Benutzereigenschaft in AD durch anzeigengetent passwd | grep user
.Wenn am Ende angezeigt wird
/bin/csh
, dass es sich um Ihre Shell handelt , liegt dies daran , dass in Ihrer AD ein Attribut dafür vorhanden ist. Wenn Sie ein Administratorkonto in AD haben, können Sie dies selbst beheben. Andernfalls weisen Sie Ihren AD-Administrator an, die erweiterten Funktionen auf der Registerkarte Ansicht unter Active Directory-Benutzer und -Computer> Benutzereigenschaften> UNIX-Attribute zu aktivieren . Dort können Sie die Login-Shell auf ändern/bin/bash
.Vergiss nicht zu rennen:
Quelle: Benutzer existiert nicht in / etc / passwd, wenn versucht wird, die Standard-Shell zu ändern .
quelle
Wenn Sie die Shell für Ihren Benutzer ändern möchten, müssen Sie nicht root werden. Tipp einfach:
ohne
sudo
und ohne argumente.Siehe auch
man chsh
:quelle
> whoami userid > chsh You may not change the shell for 'userid'.
Wenn Sie Ihren Benutzernamen vergessen haben, können Sie den
whoami
Befehl verwenden, um sich an Sie zu erinnern.Also versuchen Sie es mit:
Wenn ja, existiert keine Zeile, die mit Ihrem Benutzernamen in beginnt
/etc/passwd
Datei (was unerklärlich scheint), können Sie eine neue wie die folgende hinzufügen:Siehe auch: Grundlegendes zum Dateiformat / etc / passwd .
quelle
Wenn Sie versuchen, mit einem Domänenbenutzer in einen Remote-Host zu
chsh
sshen , können Sie Ihre Shell möglicherweise nicht mit @Masoud ändern. Hier ist eine einfache Problemumgehung für diesen Fall:ssh my-host -t "zsh --login"
oder
ssh my-host -t "cd /data/repos; zsh --login"
Wenn Sie sich auch direkt in ein anderes Arbeitsverzeichnis einloggen möchten.
quelle