Shell
執行 chsh 不會改變 shell
我想將我的 shell 從 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
剛碰到這個。無論我做了什麼登錄和退出都不會改變我的 shell,但它已列在 /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
我立即退出並重新登錄後:瞧!外殼變了