シェルをbashからzshに変更したい。
ユーザーzolとしてログインしているときに、以下を実行してみました。
$ 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
何が悪いのでしょうか?どうすれば修正できますか?
情報を変更しようとしたときに/ etc/passwd(vim/etc/passwd)を開いた場合、ユーザーアカウントの変更は保存されません。
別の方法:usermod(zolとして)を試してください:
$ usermod -s /bin/zsh
または
$ Sudo usermod -s /bin/zsh zol
これでも機能しない場合は、/etc/passwd
手で。
Sudo vipw
# set zol's Shell to /bin/zsh
:wq
「chsh -l」を実行するタイミング:
/usr/bin/zsh
/bin/zsh
次に使用します:
chsh -s /usr/bin/zsh
警告:コマンドはFedora 25で実行されました。buntunからオプション "-l"が出ています。
ちょうどこれに遭遇しました。ログインしてバックアウトしてもシェルは変更されませんが、シェルは/ etc/shellsと/ etc/passwdにリストされています。
ようやくそれが私に現れました:多分私は別のセッションでログインしていますか?
だから私はやった
# who
そしてそれは私が確かに他のマシンから他のオープンセッションを持っていることを確認しました:
dom pts/0 Nov 6 13:53 (10.1.6.121)
dom pts/1 Nov 5 12:30 (10.1.6.165)
dom pts/2 Nov 4 12:33 (10.1.6.197)
私はそれから:
pkill -KILL -u dom
私はすぐにログアウトし、ログインし直した後:Voila!シェルが変更されました
chsh: Shell not changed.
が表示されている場合は、シェルが既に変更されている可能性があります。
リストされているシェルを確認します。
cat /etc/passwd | grep `cd; pwd`
正しい場合は、ログアウトしてから再度ログインし、変更を有効にします。