Ich möchte meine Shell von bash auf zsh ändern.
Ich habe versucht, Folgendes auszuführen, während ich als Benutzer zol angemeldet war:
$ chsh -s /bin/zsh
$ sudo chsh -s /bin/zsh zol
$ su -c 'chsh -s /bin/zsh zol'
# The above all results with:
$ password:
$ chsh: Shell not changed.
# zsh exists in /etc/shells..
chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
Was könnte falsch sein? Wie kann ich es reparieren?
chsh
, dh Sie müssen sich erneut anmelden.Antworten:
Benutzerkontoänderungen werden nicht gespeichert, wenn Sie beim Versuch, die Informationen zu ändern, / etc / passwd (vim / etc / passwd) geöffnet haben.
Alternative: versuche es mit usermod (als zol):
oder
Wenn dies auch nicht funktioniert, bearbeiten Sie es
/etc/passwd
von Hand.quelle
vipw
stattdessen,vim
wie sie die entsprechenden Dateisperren setzen.Wann man "chsh -l" ausführt, wenn man sieht:
Dann benutze:
Warnung: Die Befehle wurden auf Fedora 25 ausgeführt. In Ubuntun ist die Option "-l" aus.
quelle
-l
ist eine ungültige Option für mich. Ich bin auf Ubuntu 16.04chsh -s
hat einwandfrei funktioniert. Vielen Dank.Wenn Sie sehen
chsh: Shell not changed.
, könnte dies bedeuten, dass die Shell bereits geändert wurde.Überprüfen Sie, welche Shell aufgelistet ist:
Wenn dies korrekt ist, melden Sie sich ab und wieder an, damit die Änderung wirksam wird.
quelle
Ich bin nur darauf gestoßen. Unabhängig davon, was ich beim An- und Abmelden getan habe, wurde meine Shell noch nicht geändert. Sie wurde in / etc / shells und in / etc / passwd aufgelistet.
endlich dämmerte es mir: Vielleicht bin ich mit einer anderen Sitzung eingeloggt?
So tat ich
und es stellte sich heraus, dass ich tatsächlich andere offene Sessions von anderen Rechnern hatte:
Ich habe dann gemacht:
Ich wurde sofort abgemeldet und nach dem erneuten Anmelden: Voila! Shell wurde geändert
quelle