Linux系统中,root用户是拥有最高权限的超级管理员,负责系统核心配置、软件安装、用户管理等关键操作,由于root权限过高,直接登录存在安全风险,Linux系统通常默认禁用root直接登录,需通过特定方法切换或登录,以下是几种常见的root登录方式及相关注意事项。

通过su命令切换到root用户(命令行界面)
su(switch user)命令用于在当前会话中切换用户身份,是最基础的root切换方式。
操作步骤:
- 首先登录一个普通用户账户(如
ubuntu、centos等)。 - 在终端输入
su或su -,按回车:su:仅切换用户身份,不加载root的环境变量(如PATH、HOME等),仍使用普通用户的工作目录。su -(或su -l):完全切换到root用户,加载root的环境变量,推荐使用此方式,确保操作环境与root登录一致。
- 系统提示输入root密码,输入正确后即可获得root权限(输入时密码不会显示)。
注意事项:
- 普通用户需在
sudoers文件中拥有sudo权限(默认允许wheel组或admin组用户使用su),否则无法切换。 - 切换后,通过
exit命令可返回普通用户会话。
使用sudo提权(推荐方式)
sudo(superuser do)允许普通用户以root权限执行命令,无需暴露root密码,且操作可记录日志,是更安全的权限管理方式。
操作步骤:
- 普通用户在命令前添加
sudo,例如sudo apt update(Ubuntu/Debian)或sudo yum update(CentOS/RHEL)。 - 系统提示输入当前用户的密码(非root密码),验证通过后即可执行命令。
- 若需持续root权限,可使用
sudo -i(切换到root交互式环境)或sudo su -(通过sudo切换到root,无需输入root密码)。
配置sudo权限:
通过visudo命令编辑/etc/sudoers文件(需root权限),为普通用户添加权限,允许用户test执行所有命令:

test ALL=(ALL:ALL) ALL
优点:
- 无需共享root密码,减少密码泄露风险。
- 操作日志记录在
/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS),便于审计。
直接登录root用户(不推荐,需谨慎)
直接登录root用户适用于系统维护或紧急场景,但存在安全风险,生产环境应避免使用。
图形界面直接登录(如Ubuntu)
- 修改
/etc/pam.d/gdm3文件(Ubuntu 18.04+),注释掉auth required pam_succeed_if user != root quiet_success行; - 或修改
/etc/gdm3/custom.conf,在[security]部分添加AllowRoot=true; - 重启系统或gdm服务(
systemctl restart gdm3),登录界面即可选择root用户登录。
命令行直接登录(SSH)
修改/etc/ssh/sshd_config文件,将PermitRootLogin no改为PermitRootLogin yes,保存后重启SSH服务(systemctl restart sshd)。
风险提示:
- 直接登录后,系统无操作审计,易被暴力破解或误操作破坏。
- 建议设置强密码或禁用root登录,改用SSH密钥认证。
不同登录方式对比
| 方法 | 安全性 | 适用场景 | 操作步骤 | 备注 |
|---|---|---|---|---|
su切换 |
中等 | 临时root操作 | su - → 输入root密码 |
需普通用户有su权限 |
sudo提权 |
高 | 日常管理、命令执行 | sudo 命令 → 输入当前用户密码 |
推荐方式,操作可审计 |
| 直接登录(图形) | 低 | 紧急维护、本地调试 | 修改gdm配置 → 重启 → root登录 | 生产环境禁用 |
| 直接登录(SSH) | 低 | 远程紧急维护 | 修改SSH配置 → 重启 → root SSH登录 | 需配合密钥认证提升安全性 |
相关问答FAQs
Q1:为什么Linux默认禁用root直接登录?
A:root权限过高,直接登录易被暴力破解或因误操作(如误删关键文件)导致系统崩溃,通过sudo或su切换可限制权限范围,记录操作日志,提升系统安全性,直接登录后攻击者一旦获取root权限,可完全控制系统,风险远高于普通用户权限。

Q2:忘记root密码怎么办?
A:可通过以下方式重置:
- 单用户模式重置(适用于本地系统):重启进入GRUB菜单,选择“Advanced options”→ 进入“recovery mode”→ 选择“root shell”,使用
passwd命令重置root密码,重启系统即可。 - Live USB重置(适用于无法进入系统的情况):通过Live USB启动,挂载系统分区(如
mount /dev/sda1 /mnt),修改/mnt/etc/shadow文件,将root密码字段清空(或使用chroot /mnt后执行passwd),重启后设置新密码。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16798.html