在 Debian 中替换(修改)用户的登录 shell,常见有以下几种方法:
chsh 命令(推荐,普通用户/管理员均可)chsh
按提示输入新 shell,例如:
/bin/zsh
sudo chsh -s /bin/zsh username
⚠️ 新 shell 必须在 /etc/shells 中列出,否则会报错。
查看可用 shell:
cat /etc/shells
usermod 命令(管理员)sudo usermod -s /bin/zsh username
查看是否修改成功:
grep username /etc/passwd
/etc/passwd(不推荐但可用)sudo vipw
或修改:
sudo nano /etc/passwd
格式示例:
username:x:1000:1000:User:/home/username:/bin/bash
将最后的 /bin/bash 改为目标 shell,如 /bin/zsh
⚠️ 修改错误可能导致无法登录。
exec zsh
或
su - username -s /bin/zsh
/bin/bash/bin/zsh/bin/fish/bin/sh/usr/bin/fish如未安装:
sudo apt install zsh
如果你是想批量修改、禁止登录(nologin)或Docker 环境下修改,也可以告诉我具体场景。