Ubuntu 22重置root密码


一、进入GRUB菜单

  1. 重启系统‌,在启动界面出现时立即反复按〖Shift〗键(UEFI系统可能需按〖Esc〗键)
  2. 选择内核条目‌:通过方向键定位默认的Ubuntu启动项(通常为首项)

二、修改内核启动参数

  1. 进入编辑模式‌:选中内核条目后按〖e〗键进入GRUB参数编辑界面
  2. 调整参数‌:
    • 定位以linuxlinuxefi开头的行
    • ro quiet splash修改为rw init=/bin/bash
      bashCopy Code
      # 原参数示例 linux /boot/vmlinuz-xxx root=UUID=xxx ro quiet splash $vt_handoff # 修改后 linux /boot/vmlinuz-xxx root=UUID=xxx rw init=/bin/bash ```:ml-citation{ref="1,5" data="citationList"}
  3. 保存启动‌:按〖Ctrl+X〗或〖F10〗启动系统

三、挂载文件系统

  1. 检查挂载状态‌(如系统仍为只读):
    bashCopy Code
    mount | grep /
  2. 重新挂载根目录‌:
    bashCopy Code
    mount -o remount,rw / # 若显示ro则执行此命令强制读写模式:ml-citation{ref="2,8" data="citationList"}

四、执行密码重置

  1. 修改root密码‌:
    bashCopy Code
    passwd root # 输入两次新密码(输入时不显示内容):ml-citation{ref="1,6" data="citationList"}
  2. 同步数据‌(防止缓存未写入):
    bashCopy Code
    sync # 强制数据写入磁盘:ml-citation{ref="7,8" data="citationList"}

五、退出并重启

bashCopy Code
reboot -f # 强制重启系统:ml-citation{ref="5,7" data="citationList"}

▶ 关键注意事项

  1. 参数差异‌:
    • 若使用init=/bin/bash进入后无法修改密码,可尝试改为single参数
    • 部分环境需在参数行尾部保留$vt_handoff字段
  2. 恢复模式替代方案‌:
    GRUB菜单中可选择带有(recovery mode)的内核项,通过菜单直接进入root shell
  3. 安全性建议‌:
    • 操作完成后建议检查/etc/shadow文件权限是否为640
    • 生产环境操作前建议制作系统快照

(验证成功后,建议执行sudo -i测试新密码是否生效)