起因是因为今天给自己电脑装了个zsh,在自己的账户设置成默认shell为zsh之后,想着给root也设置成zsh.结果输入了这个指令
chsh -s zsh root
结果是,他居然执行了......系统自然不会直接使用zsh,果然后面输入su进入root时,显示报错了.
╭─nulla@purgatorio-iii ~
╰─$ su
Password:
su: failed to execute zsh: No such file or directory
后面怎么改都不行,
╭─nulla@purgatorio-iii ~
╰─$ sudo chsh -s /usr/bin/bash 1 ↵
Password:
chsh: PAM: Authentication failure
通过其他有权限的用户修改
于是我想到了手动去修改他的默认shell. 到/etc/passwd这里, 就是改他的默认登陆文件夹位置和默认shell的地方. 修改root的默认shell(第二个路径)为/usr/bin/zsh.
修改完之后su提全, 输入密码后顺利进入root.
通过单用户模式修改
如果本机器没有其他拥有权限的用户,无法对passwd文件进行直接修改。如果能通过物理方式访问这个服务器,可以尝试单用户模式。在开机启动的页面按下e,然后在Linux那一行末尾添加
init=/bin/sh
这样就能进入单用户模式,随后可以直接编辑passwd文件