web-dev-qa-db-ja.com

chshを実行してもシェルは変更されません

シェルを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

何が悪いのでしょうか?どうすれば修正できますか?

22
Zolomon

情報を変更しようとしたときに/ 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
20
fromnaboo

「chsh -l」を実行するタイミング:

/usr/bin/zsh
/bin/zsh

次に使用します:

chsh -s /usr/bin/zsh

警告:コマンドはFedora 25で実行されました。buntunからオプション "-l"が出ています。

1
lourencoccc

ちょうどこれに遭遇しました。ログインしてバックアウトしてもシェルは変更されませんが、シェルは/ 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!シェルが変更されました

0
Dom

chsh: Shell not changed.が表示されている場合は、シェルが既に変更されている可能性があります。

リストされているシェルを確認します。

cat /etc/passwd | grep `cd; pwd`

正しい場合は、ログアウトしてから再度ログインし、変更を有効にします。

0
Codebling