如果你是从 Ubuntu 18.04/20.04 一路升上来的老用户,或者刚从 CentOS 切换过来,第一反应大概率是:装完 Ubuntu 24.04 打开终端敲 su,然后发现 root 密码根本没设置过,系统直接告诉你“认证失败”。这不是你操作有误,而是 Ubuntu 默认就把 root 用户锁在门外了。我当年第一次用 Ubuntu 时也在这儿卡了半天,后来才明白这是 Debian/Ubuntu 系跟 RHEL/CentOS 系在设计哲学上的一个重大分歧。
这篇文章不是要把 root 密码交给你就完事,我会讲清楚“为什么 Ubuntu 要这么干”“哪些场景值得你打破这个默认设置”“怎么操作最不容易翻车”,以及“启用 root 之后会遇到哪些真实环境的坑”。基于 Ubuntu 24.04 的实测,覆盖实体机、VMware 虚拟机、云服务器三种环境,尽量让看完的人能一次搞定,不用再到处查。
1. 为什么 Ubuntu 默认不让你直接用 root,以及这样做到底图什么
1.1 Ubuntu 的 sudo 机制和它的历史根源
Ubuntu 从诞生那天起就默认禁用 root 超级用户,安装系统时让你建的那个账号,会被自动加入 sudo 组。这个设计不是 Ubuntu 拍脑袋想出来的,而是继承了 Debian 的传统,而 Debian 是江湖上出了名保守的发行版。
sudo 与直接使用 root 的核心区别,不在于“能不能拿到最高权限”,而在于“拿到权限之后要不要留痕、要不要输入密码”。普通用户执行 sudo command 时,系统会要求你输入当前用户的密码,然后在 /var/log/auth.log 里记录一条日志,内容包括谁在什么时候执行了什么命令。而直接以 root 身份登录系统后,终端上敲的每一条命令默认都不需要二次认证,日志里也不会自动关联到具体是哪个物理用户干的。
这套机制在单机开发环境里看起来有点多此一举,但在服务器环境非常关键。想象一个场景:三个人共管一台服务器,如果大家都用 root 登录,哪天有人执行了 rm -rf,出事了根本不知道是谁干的。如果大家都用 sudo 切换,日志会清楚地写着 user1 执行了删除命令,追责和复盘都很方便。
另外,从安全攻击面的角度讲,root 用户一旦存在且密码泄露,攻击者得到的就是一台完全沦陷的机器。Ubuntu 默认不设 root 密码,等于直接把这条攻击路径从原理上切断了。攻击者即便拿到了普通用户,也必须先破解 sudo 密码,而 sudo 密码就是普通用户自己的密码,这层认证粒度比直接搞 root 更细。
1.2 什么场景下你真的需要启用 root,什么时候其实不需要
我在实际使用中总结下来,值得启用 root 的场景无非这几类:
- 你有一台纯个人开发用的 Ubuntu,日常操作全是改系统配置、装软件、折腾环境变量,sudo 每次输密码确实烦,直接切 root 省事。
- 你要在 VMware / VirtualBox 虚拟机里做系统实验,比如编译内核、修改系统级服务、模拟生产环境故障,这些操作往往需要持续一段时间的 root 权限,每次 sudo 会影响实验节奏。
- 你在写运维脚本或自动化任务(比如 cron 里的备份、清理日志),脚本内部需要大量系统级权限,用普通用户 + sudo 配 NOPASSWD 也行,但直接 root 更省心。
- 你要调试某些需要特权才能响应的事件,比如抓网络包、挂载文件系统、修改硬件参数,这些命令在普通用户下要么需要 sudo,要么直接报错。
反过来,这些情况下我强烈建议你不要启用 root:
- 服务器上有多个使用者,哪怕都是可信任的人,也尽量别开放 root 直登。用 sudo + 日志是性价比最高的方案。
- 你的 Ubuntu 是给家里人或者同事当日常桌面用的,系统里跑着浏览器、办公软件、输入法。这类场景一旦默认登录 root,哪怕一次误操作点击了某个需要 root 权限的清理脚本,都可能把整个系统搞崩。
- 你正在用的生产环境是 Docker 容器或 Kubernetes 节点,容器里通常已经用非 root 用户运行进程了,宿主机 root 权限外泄会影响整个集群。
一句话总结:开发机和实验机启用 root 是效率刚需,生产环境和多人共用机器尽量别碰。 如果你只是觉得“书上说 Linux 就该用 root”,那建议再冷静一下。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 启用 root 用户的标准操作:从设置密码到正常切换
2.1 第一步:用 sudo passwd root 设置 root 密码
Ubuntu 默认虽然锁定了 root,但 root 账号本身是存在的,只是没有可用的密码。你只需要用当前用户身份,执行一条命令给它设置一个新密码,就完成了“启用”的第一步。在 Ubuntu 24.04 终端输入:
bash复制sudo passwd root
系统会先要求你输入当前用户的密码(sudo 验证),然后提示你设置新的 root 密码,并且会让你输两遍确认。这里有个细节要特别注意:`p
