Fedora14服务器root被重命名为qroot,无法切换用户如何恢复?
看起来你遇到了一个挺棘手的账户篡改问题——UID 0的超级用户被重命名为qroot,还引发了认证和权限混乱。别担心,我们可以通过单用户模式绕过正常登录限制,一步步把系统恢复回来:
步骤1:进入单用户模式
因为现在正常登录root失败,su qroot密码也不匹配,我们需要从GRUB启动菜单进入单用户模式获取权限:
- 启动服务器,当GRUB菜单出现时(如果没看到,按住Shift键触发),选中你的Fedora 14内核条目,按
e进入编辑模式。 - 找到以
kernel开头的行,移动到行尾,添加single(注意前面加空格)。 - 按
Ctrl+X或b启动系统,这样会直接进入单用户模式,无需密码即可获得超级权限。
步骤2:挂载根文件系统为读写模式
默认下单用户模式的根文件系统是只读状态,我们需要先切换为读写才能修改配置文件:
mount -o remount,rw /
步骤3:修复/etc/passwd文件
现在你的passwd文件里没有root用户,只有qroot占据了UID 0的位置。我们直接修改这条条目恢复root:
- 用vi编辑passwd文件:
vi /etc/passwd
- 找到类似这样的行:
qroot:x:0:0:root:/root:/bin/bash
把开头的qroot改成root,修改后应为:
root:x:0:0:root:/root:/bin/bash
保存退出vi(按
Esc,输入:wq回车)。修复passwd文件的归属权限(当前属于qroot,需改回root):
chown root:root /etc/passwd chmod 0644 /etc/passwd
步骤4:修复/etc/shadow文件
目前shadow文件仅qroot可读,我们需要把它的权限和归属恢复正常:
chown root:root /etc/shadow chmod 0600 /etc/shadow
因为你提到系统采用纯/etc/passwd认证,不过Fedora 14默认会使用shadow机制。如果确实要只用passwd认证,可以把passwd中root的第二个字段(当前是x)替换为加密后的密码,或者直接重置root密码:
passwd root
按照提示输入新密码即可,这个操作会自动匹配你的认证模式更新对应文件。
步骤5:检查并修复/etc/group文件
顺便确认root组的条目没有被篡改,确保/etc/group里存在这一行:
root:x:0:
如果条目异常,用vi编辑修正后,设置正确权限:
chown root:root /etc/group chmod 0644 /etc/group
步骤6:重启系统恢复正常模式
完成所有修改后,执行以下命令重启系统:
exec /sbin/init
或者强制重启:
reboot -f
重启后,你就能用root账户正常登录了——之前归属qroot的文件会自动恢复为root所有,因为文件权限是基于UID而非用户名识别的。
内容的提问来源于stack exchange,提问作者Aravindh Sathish




