Ubuntu修改root密码全指南:从sudo到恢复模式
如果刚接触 Linux你可能在第一次登录 Ubuntu 时对着密码框发呆安装时明明只创建了一个普通用户改名 root 登录却永远提示认证失败。别慌这不是系统有问题而是 Ubuntu 默认把 root 锁定了。很多教程告诉你运行 sudo passwd root 就能修改 root 密码但真正操作起来不同版本、不同加密方式、甚至不同引导模式下的细节都足够让你踩一遍坑。本文想讲的是围绕 Ubuntu 修改 root 账户密码这条命令背后系统为何这么设计、不同场景下的改法、以及那些容易忽略的注意事项。1. 为什么 Ubuntu 默认不让你直接用 root1.1 Ubuntu 的权限设计逻辑Debian 系 Linux 里root 是拥有完整系统控制权的超级账户理论上能执行任何操作包括删除整个系统。Windows 用户可能习惯了一个管理员账号走天下但 Linux 更强调权限分离。Ubuntu 在安装阶段只创建普通用户不给 root 设置密码这不是偷懒而是刻意为之。普通用户日常干不了什么伤筋动骨的事顶多改改自己目录里的文件。真要执行需要特权的命令必须借助 sudo。sudo 的意思是“以其他用户身份执行命令”默认为 root但每次执行都会记入 /var/log/auth.log谁在什么时间用 sudo 干了什么只要日志没被篡改全都留着。相比之下如果你一直拿 root 做事出了事故后人肉排查只能看到一个 root根本分不清是哪位同事误操作。用一句话概括就是Ubuntu 把你平时锁在普通用户把万能钥匙折成了两半一半交给命令一半留在日志里。修改 root 密码等于把这把钥匙重新熔铸回一整把。大多数新手不理解这个差异总想跟 CentOS 一样装完直接 root 登录结果反而把系统的安全基线拱手让出。1.2 root 被锁定和“没有密码”的区别在 Ubuntu 上回执“root 密码错误”很多人都以为是密码没设置对其实是 root 在密码数据库里的状态是锁定。用户密码存放在 /etc/shadow 文件里root 那一行的密码字段前如果带感叹号或星号就表示该账户被锁定任何密码都进不去。这是一种“无有效密码”的禁用状态而不是单纯地没有密码。执行 sudo passwd root系统会将新的密码哈希写入 /etc/shadow同时自动解除锁定状态root 账户立刻变为可登录。不过反过来说如果你手动把 shadow 中的 root 密码字段改成感叹号root 也会重新变回锁定状态。所以修改 root 密码在很多老手的理解里本质就是一次“解锁 设置密钥”的组合操作。提示建议在修改前先执行 sudo cat /etc/shadow看一眼 root 行的密码字段结构。这样能确认当前是否处于锁定状态同时也能对比修改前后哈希值的变化避免出现“明明改过却仍然登不上”的乌龙。2. 三种典型场景下修改 root 密码的方法2.1 场景一系统能正常登录用 sudo 直接改这是最常见的路径适合你拥有一个有 sudo 权限的普通用户账号。打开终端输入以下命令sudo passwd root系统会提示输入新的 UNIX 密码注意这里要求你输入两遍第二遍是确认。整个过程中屏幕不会显示任何输入字符这不是系统卡了而是 passwd 命令刻意不在回显中显示密码防止旁人偷看。输完第二遍后看到 passwd: password updated successfully 就表示成功了。验证是否生效su - root输入刚设置的密码如果提示符变成 root主机名:/home/用户名#说明 root 身份切换成功。还可以用 whoami 或 id -u 确认id -u 返回 0 就是 root。需要注意su 命令中如果缺少 “-” 号切换后的路径和环境变量可能不完整偶尔会引发某些奇怪问题所以建议切换时写成 su - root。这个方法看似简单但有两个前提一是假设你当前普通用户有 sudo 权限。如果 /etc/sudoers 配置缺失或用户不在 sudo 组sudo 会直接提示不在 sudoers 文件中此时只能重启进恢复模式执行重置。二是修改完 root 密码后如果你是刚装的系统一般不需要手动解锁密码设置完即自动解除锁定。2.2 场景二普通用户密码也忘了只能重启进恢复模式如果说忘记 root 密码还不算绝望那么把普通用户密码也一起忘了就属于真正的救急现场。Ubuntu 的恢复模式是 GRUB 启动菜单里自带的一个选项作用是给你一个最小化环境允许在不需要完整系统的情况下做维护。具体步骤重启电脑在开机时按住 Shift部分用 BIOS 引导的机器要用 Esc直到出现 GRUB 菜单。选择高级选项再选择带有 recovery mode 字样的内核版本。进入恢复菜单后选择 root 选项此时会掉入 root shell。但需要注意进入 shell 时文件系统通常是只读的你直接执行 passwd root 会报错必须先重新挂载根分区为可读写mount -o remount,rw /然后执行 passwd root按提示输入新密码并确认。最后输入 reboot 重启root 密码就生效了。这个方案最关键的坑就是那行 mount 命令。很多人进入 root shell 后立刻执行 passwd报错 permission denied 或 cannot lock /etc/passwd紧接着就懵了。真实原因不是权限不够而是根文件系统是只读挂载写不进去任何东西。理解了这个原因备份后基本不会再栽同样的跟头。2.3 场景三系统彻底进不去用 Live USB 挂载后修改如果你的 GRUB 菜单损坏或系统组件有问题导致开机直接卡死恢复模式也进不去这时需要准备一个 Ubuntu Live USB 启动盘用外部的“急救系统”来改密码。制作启动盘后用 U 盘引导进入默认的 Ubuntu 桌面环境。打开终端先通过 lsblk 或 fdisk -l 找到 Linux 系统的根分区。以 /dev/sda3 为例执行sudo mount /dev/sda3 /mnt如果根分区所在环境还有其他分区比如 /boot 是独立分区需要一并挂载进去。挂载完成后切换现场sudo chroot /mnt passwd rootchroot 的意思就是把当前进程的根目录切换成 /mnt相当于把硬盘上的系统当作“临时宿主”来使用。在这个环境里passwd root 改动的是硬盘上真实系统的密码数据库而不是 Live 环境本身的。改完执行 exit再挂载 /boot 检查没有问题直接重启并拔出 U 盘即可。涉及全盘加密比如 LUKS的系统Live 环境下还需要先解锁加密磁盘通常是有 GUI 的磁盘加密工具可以解锁或者用 cryptsetup open /dev/sda3 手动映射逻辑卷。这一层如果没处理后续看到的所有分区内容都是乱码或空目录根本找不到真实 /etc/shadow。3. 实操过程中的细节与避坑提醒3.1 passwd 命令的隐藏参数和显示问题很多人不知道 passwd 有很多子命令它不是只能改密码。常用参数里-S 用于查看指定用户的状态可以直观看到 root 是被锁定的 L 状态、还是正常密码 P 状态。执行 sudo passwd -S root输出里会包含密码状态字段这对排查登录问题很有帮助。另一个关键点是修改密码时如果系统策略设置了密码复杂度要求passwd 可能会拒绝薄弱密码提示类似“密码过于简单”之类的信息。这时不必太较真可以设置一个符合强度的密码或者临时修改 /etc/pam.d/common-password 里 pam_pwquality 模块的配置。不过生产环境不建议这么做为了简单而放弃密码强度等于给服务器开了一扇不牢靠的后门。3.2 不同 Ubuntu 版本之间的差异Ubuntu 20.04 到 24.04GRUB 菜单的表现略有不同。20.04 的恢复模式入口通常在内核选项下方但 22.04 之后的某些版本默认隐藏了 GA kernel 选项需要按 Shift 或 Esc 进入菜单后手动选择高级选项。部分预装 oem 内核的机器恢复模式的显示文本可能有些许出入但不影响原理。另外如果你用的是 WSL 环境那情况又不同。WSL 里的 Ubuntu 默认用户就是 root不需要 sudo直接 passwd root 就会要求输入新密码。WSL 不涉及 GRUB 和恢复模式所以忘密码时在 Windows 侧执行 wsl -d Ubuntu -u root 进入 root再 passwd root 即可。3.3 修改完成后的验证清单密码改完后我建议不要直接关机先做这几个快速检查执行 su - root确认密码能成功切换身份执行 passwd -S root确认状态不是 Llocked如果需要远程登录尽量先开一个新会话验证别把旧会话关掉否则可能被锁在门外还有一种情况你原本用 sudo 管理服务器现在给 root 设置了密码看似只是多了一个登录方式但风险程度完全不同。密码一旦泄露攻击者可以直接以 root 身份远程登录绕过 sudo 的所有审计。所以除非必要我建议保持 root 锁定只在个别特殊场景下才解锁。4. 常见问题速查与安全管理建议4.1 常见问题与排查思路修改 root 密码这条路上有几个问题几乎人人都会遇到这里整理成一张速查表现象可能原因解决方案passwd 改完仍提示认证失败shadow 文件被只读挂载执行 mount -o remount,rw / 后重试恢复模式进不去 root shellGRUB 菜单中未选择高级选项重启后再按 Shift 或 Esc确认菜单展开挂载根分区后看不到 /etc/passwd未打开 LUKS 加密卷使用 cryptsetup 解锁磁盘后再挂载使用 sudo 提示用户不在 sudoers当前用户未加入 sudo 组在恢复模式下用 root shell 将用户加入 sudo 组输入密码时屏幕没反应终端故意隐藏输入回显正常输入不显示字符不代表键盘坏了4.2 root 账户的安全管理建议设置 root 密码不应成为默认操作。除非你需要直接 root 登录做一些底层维护否则建议保持 root 锁定。日常操作走 sudo不仅每条命令都能被记录还能通过 groups 和 sudoers 灵活控制不同用户的不同权限。如果你确实需要远程 root 登录比如某些自动化脚本要求必须用 root 身份连接 SSH那么尽量做好这些防线修改 /etc/ssh/sshd_config将 PermitRootLogin 设为 prohibit-password意思是只允许公钥认证不允许密码登录为 root 配置专门的 SSH 密钥对私钥保存在客户端本地不要在服务器上留存设置 fail2ban 这类暴力破解防护对多次认证失败的 IP 进行封禁经常检查 /var/log/auth.log关注 root 登录相关的异常记录补充一个常见误区很多人以为在 /etc/ssh/sshd_config 里把 PermitRootLogin 设成 yes 就能用密码登录 root还要在 Cloud 平台的安全组或局域网防火墙里放行对应端口。但实际上系统层面之外云厂商的安全策略同样可能拦截 root 登录排查时要两端一起看。从实际运维角度看修改 root 密码最好和“最小权限”原则绑定。比如某次应用需要以 root 身份执行定时任务与其直接开放 root 密码不如在 sudoers 里为某个专用账户单独设置一条 NOPASSWD 指定命令的规则。这样既绕过了密码泄露风险又保留了审计轨迹还能精确到命令级别比一把 root 万能钥匙精细得多。最后说一点自己的习惯我在管理生产环境服务器时几乎永远不给 root 设置可登录密码。root 账户始终保持锁定日常管理走 sudo紧急救援才临时改 root 密码。但也有例外比如某些 Docker 容器内的 Ubuntu默认 root 就拥有完全权限这时候密码的作用更多是让“准 root 用户”走一走认证流程其实所有限制都必须依赖外部防火墙或容器隔离来解决。说到底修改 root 密码本身只是服务器维护的一个小动作真正要花心思的是改完之后如何保证整个身份认证体系依然清晰、可控且经得起攻击者的试探。

相关新闻

SpringBoot+Vue高校健康管理平台:从业务闭环到答辩演示的全栈实战指南

SpringBoot+Vue高校健康管理平台:从业务闭环到答辩演示的全栈实战指南

做毕设选题目的时候,很多同学会陷入两个极端:要么选一个纯仿电商的商城系统,烂大街不说,答辩老师一眼就能看出是不是自己写的;要么选一个看起来很高大上的分布式微服务项目,结果做了一半发现根本撑不起来&a…

2026/10/17 17:46:38 阅读更多 →
千问    LeetCode 587. Erect the Fence Java Implement

千问 LeetCode 587. Erect the Fence Java Implement

Here is the Java implementation for LeetCode 587. Erect the Fence, using Andrew’s monotone chain convex hull. I verified the logic against the official examples plus collinear and vertical-edge cases — all pass. Java Implementation class Solution { publi…

2026/10/18 0:38:25 阅读更多 →
ethers事件监听全指南:原理、过滤器、实战与坑

ethers事件监听全指南:原理、过滤器、实战与坑

写区块链开发的人,迟早会遇到“事件监听”这个坎。刚开始写合约交互时,大多数人都只是调一下读方法、发一笔交易,觉得ethers这个库也就这么回事。但等你真正开始做链上监控、做数据同步、做自动交易提醒,或者哪怕只是写一个展示最…

2026/10/17 8:50:30 阅读更多 →

最新新闻

tiny11builder:1 条命令瘦身 Win11 镜像

tiny11builder:1 条命令瘦身 Win11 镜像

tiny11builder:1 条命令瘦身 Win11 镜像 【免费下载链接】tiny11builder WinUI app for building smaller, customized Windows 11 images. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 如果你的机器上有官方 Windows 11 ISO&#xff0…

2026/10/18 1:32:47 阅读更多 →
光纤通信技术课件精讲:原理、器件到系统链路预算

光纤通信技术课件精讲:原理、器件到系统链路预算

简介:这份PPT课件围绕光纤通信技术展开,适合通信工程、电子信息等专业的学生,以及从事光传输系统运维与设计的工程技术人员使用。内容系统覆盖光纤通信概述、光纤传输原理与特性、光发送机与光接收机、光纤通信系统组成及光纤通信新技术等章节…

2026/10/18 1:32:47 阅读更多 →
室内视觉导航开发工具VNA-Kit:从二维码定位到AR箭头引导的完整实践

室内视觉导航开发工具VNA-Kit:从二维码定位到AR箭头引导的完整实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 1:32:47 阅读更多 →
QtScrcpy 按键映射完全指南:5 种映射类型逐字段拆解,3 步配好你自己的 KeyMap 脚本

QtScrcpy 按键映射完全指南:5 种映射类型逐字段拆解,3 步配好你自己的 KeyMap 脚本

QtScrcpy 按键映射完全指南:5 种映射类型逐字段拆解,3 步配好你自己的 KeyMap 脚本 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy 是一款 Android…

2026/10/18 1:32:47 阅读更多 →
浏览器里跑复古游戏:EmulatorJS 3 分钟挑对版本

浏览器里跑复古游戏:EmulatorJS 3 分钟挑对版本

浏览器里跑复古游戏:EmulatorJS 3 分钟挑对版本 【免费下载链接】EmulatorJS A web-based frontend for RetroArch 项目地址: https://gitcode.com/GitHub_Trending/em/EmulatorJS EmulatorJS 是浏览器里玩复古游戏最完整的选择。它把 RetroArch 包进网页&am…

2026/10/18 1:32:47 阅读更多 →
InternVL2_5-78B-MPO是什么?开源多模态大模型MPO系列7分钟入门完整指南

InternVL2_5-78B-MPO是什么?开源多模态大模型MPO系列7分钟入门完整指南

【免费下载链接】InternVL2_5-78B-MPO 项目地址: https://ai.gitcode.com/OpenGVLab/InternVL2_5-78B-MPO 点击查看 免费下载 InternVL2_5-78B-MPO 是 OpenGVLab 推出的开源多模态大模型(MLLM),基于 InternVL2.5 并引入 MPO&…

2026/10/18 1:31:47 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →