2.2 启用 root 用户账户
Ubuntu 系统默认禁用 root 账户,因其未预设密码,此举旨在遵循最小权限原则,降低因直接使用 root 导致的误操作或安全风险。日常管理任务应优先通过 sudo 机制执行——即以具备 sudo 权限的普通管理员账户调用特权命令,该方式支持细粒度审计、密码重验证及策略化授权。
仅在特定运维场景(如嵌入式环境调试、兼容性要求或自动化脚本受限等)确需启用 root 账户时,方可按以下经安全评估的方案操作:
1. 临时获取 root shell(推荐方式)
无需启用 root 账户本身,可直接通过已配置的管理员账户执行:
ubuntu@localhost:~$ sudo -s
[sudo] password for ubuntu: # 输入当前用户密码
root@localhost:/home/ubuntu# # 已切换至 root shell
2. 永久启用 root 账户并设置密码(谨慎使用)
若业务流程强制要求 root 登录(例如部分遗留工具链),可通过以下步骤激活:
ubuntu@localhost:~$ sudo passwd root
[sudo] password for ubuntu: # 输入当前用户密码
New password: # 设置强密码(建议≥12位,含大小写字母、数字及符号)
Retype new password: # 重复确认
passwd: password updated successfully
ubuntu@localhost:~$ su -
Password: # 输入刚设置的 root 密码
root@localhost:~# # 已切换至 root 登录会话
3. 限制 root 切换权限(启用 root 后的必要加固措施)
为防止未授权用户通过 su 命令提权,须实施基于 PAM 的访问控制:
(1)编辑 /etc/pam.d/su 配置文件:
root@localhost:~# vi /etc/pam.d/su
# 取消第15行注释,并指定允许执行 su 的用户组(示例使用 adm 组):
auth required pam_wheel.so group=adm
(2)将获准切换的用户加入该组:
root@localhost:~# usermod -aG adm ubuntu
注:启用 root 账户后,所有以 root 身份执行的操作均绕过 sudo 审计日志。因此,强烈建议同步配置 sudoers 策略(如禁用 root shell 访问:Defaults rootpw 或 requiretty),并确保系统日志服务(rsyslog/journald)持续运行以保留完整操作痕迹。本文档后续示例默认以 root 身份展示;若采用 sudo 方式,请在对应命令前显式添加 sudo 前缀。