Ubuntu root用户登录
在 Ubuntu 系统中,默认情况下 root 用户是无法直接通过密码登录的。Ubuntu 的设计理念是不建议直接使用 root 用户登录系统(包括本地和远程登录),而是使用普通用户并通过 sudo 提升权限。
原因
Ubuntu 默认禁用 root 用户的密码,因此 root 用户在本地控制台尝试登录时,也会因为没有设置密码而失败。即使为 root 用户设置了密码,许多 Ubuntu 版本仍然通过 PAM(可插入认证模块)配置禁止 root 用户登录到 GUI。
Ubuntu 系统默认的 root 用户登录策略
-
默认禁用
root用户密码:- 在 Ubuntu 中,
root用户的密码是禁用的,因此即使尝试登录root,系统也不会允许。 - 默认情况下,Ubuntu 创建的第一个用户是管理员,拥有
sudo权限,可以通过sudo提升权限来完成管理任务。
- 在 Ubuntu 中,
-
推荐使用
sudo:- Ubuntu 通过
sudo提供了一个更安全的权限提升方式,避免直接使用root用户。 - 使用
sudo的好处是,管理员任务可以由普通用户临时获得权限,并且所有使用sudo的操作都会被记录下来,便于审计。
- Ubuntu 通过
允许 root 通过密码本地登录
如果确有需要启用 root 用户的本地登录,可以执行以下步骤:
-
为
root用户设置密码(如果还没有设置):1
sudo passwd root
设置密码后,
root用户的密码认证将被启用。 -
检查并修改 PAM 配置:
-
确保
/etc/pam.d/gdm-password(适用于 GNOME 桌面环境)或/etc/pam.d/login文件中没有阻止root登录的配置。 -
检查是否有类似
auth required pam_succeed_if.so user != root quiet_success的行。这一行会阻止root用户通过 GUI 登录。如需允许
root用户登录,可以将这一行注释掉:
-
1 | # auth required pam_succeed_if.so user != root quiet_success |
- 重新启动登录管理器(例如
gdm、lightdm)以使更改生效:1
sudo systemctl restart gdm
允许 root 通过密码ssh登录
如果确实需要允许 root 用户直接登录,可以按照以下步骤进行配置:
-
为
root用户设置密码:- 你需要先为
root用户设置一个密码:1
sudo passwd root
- 系统会提示输入并确认
root用户的新密码。
- 你需要先为
-
允许
root用户通过 SSH 登录:- 打开 SSH 配置文件
/etc/ssh/sshd_config:1
sudo nano /etc/ssh/sshd_config
- 找到
PermitRootLogin配置,将其修改为yes(去掉注释符号#):1
PermitRootLogin yes
- 保存并退出文件,然后重启 SSH 服务:
1
sudo systemctl restart sshd
- 打开 SSH 配置文件
安全性提示
[!error] 警告
启用 root 用户的本地登录存在安全风险,因为它会绕过 sudo 的审计和日志记录功能。一般建议使用普通用户并通过 sudo 提升权限来执行管理任务,而不是直接使用 root 用户。
启用 root ssh登录后,也存在较高的安全风险,容易受到暴力破解攻击。因此,强烈建议仅在必要时临时启用 root 用户登录,并尽可能使用 SSH 公钥认证方式。通过上述配置,root 用户将能够直接登录到系统。但启用后,请确保使用强密码或通过防火墙限制 root 登录的 IP 地址,以提高安全性。
如何更新普通用户的密码
1 | sudo su root |