Fedora 14服务器root被重命名为qroot无法切换,如何恢复?
恢复root用户的分步解决方案
嘿,这个情况确实有点棘手——UID 0的超级用户被改成了qroot,还导致su命令无法正常切换到root。不过好在你的系统采用纯/etc/passwd认证,不需要依赖/etc/shadow,我们可以通过单用户模式或者救援模式来修复,具体步骤如下:
方法一:单用户模式修复(优先尝试)
如果你的服务器能正常进入GRUB启动菜单,这是最快的方法:
- 重启服务器,在GRUB界面选中你平时使用的内核,按下
e进入编辑模式 - 找到以
linux开头的内核参数行,在行的末尾添加init=/bin/bash(部分发行版可能需要用rd.break,比如CentOS/RHEL) - 按下
Ctrl+X启动,此时会进入一个只读的单用户shell,先把根文件系统挂载为可写:mount -o remount,rw / - 编辑
/etc/passwd文件,把qroot的条目改回root:- 用
vi或者nano打开文件:vi /etc/passwd - 找到类似
qroot:x:0:0::/root:/bin/bash的行,把开头的qroot改成root,保存退出
- 用
- 修复
/etc/passwd的属主(目前它属于qroot,我们需要改回root):chown root:root /etc/passwd - 顺便检查
/etc/group文件,如果有qroot:x:0:这样的组条目,同样改成root:x:0: - 最后把根文件系统改回只读,重启系统:
mount -o remount,ro / exec /sbin/init
方法二:救援模式修复(单用户模式无法进入时)
如果是远程服务器,可能需要联系服务商开启KVM控制台或者进入救援模式:
- 进入救援模式后,先找到你的系统根分区(可以用
fdisk -l查看),然后挂载到/mnt/sysimage:mount /dev/sda1 /mnt/sysimage # 这里替换成你的根分区路径 - 切换到系统的根环境:
chroot /mnt/sysimage - 重复方法一中的步骤4-6:修改
/etc/passwd的用户条目、修复文件属主、检查/etc/group - 退出chroot环境,卸载分区并重启:
exit umount /mnt/sysimage reboot
后续验证与建议
- 重启后执行
id root,应该显示UID为0的root用户;执行su -可以正常切换到root - 因为系统用纯
/etc/passwd认证,/etc/shadow的问题暂时不影响登录,之后可以用passwd root重新设置密码,再修复/etc/shadow的权限(chmod 600 /etc/shadow)和属主 - 一定要排查出现这个问题的原因,比如是否存在恶意入侵或者误操作,及时做好服务器安全加固(比如禁用root直接SSH登录、配置防火墙、定期更新系统等)
内容的提问来源于stack exchange,提问作者Aravindh Sathish
相关产品推荐
相关产品推荐

