服务器测评网
我们一直在努力

Linux怎么禁用root账户,禁用root后如何登录系统?

在 Linux 系统运维与安全加固体系中,禁用 root 账户的直接远程登录是保障服务器安全性的首要且最关键的措施,这一操作并非完全剥夺 root 账户的管理权限,而是通过切断外部攻击者针对最高权限账户的直接攻击路径,强制系统管理员使用普通用户登录后再通过权限提升机制(如 sudo)进行管理,这种“最小权限原则”的落地实施,能够有效防御自动化脚本发起的暴力破解攻击、防止因管理员操作失误导致的灾难性后果,并确保每一次敏感操作都有迹可循,从而在系统可用性与安全性之间构建起坚固的平衡。

Linux怎么禁用root账户,禁用root后如何登录系统?

为什么要彻底禁用 root 远程登录

在默认安装的 Linux 系统中,root 账户作为系统的超级用户,拥有对系统所有文件的读写权限以及对所有进程的控制权,这种“全能”也使其成为了黑客和自动化蠕虫病毒的首要攻击目标,攻击者一旦获取了 root 密码,便可以完全控制服务器,植入木马、篡改数据或将其作为跳板攻击内网其他设备。

禁用 root 远程登录的核心价值在于增加攻击者的成本,即使 root 密码设置得非常复杂,依然无法完全抵御高强度的分布式暴力破解,通过禁用 root 登录,攻击者首先需要猜测出一个普通用户的账号名和密码,然后还需要突破该用户的 sudo 权限限制,从运维合规的角度来看,使用普通用户配合 sudo 执行命令,系统会自动记录操作日志,这对于安全审计和事故回溯至关重要。

前置准备:创建具备 sudo 权限的普通用户

在执行禁用 root 登录的操作之前,必须确保系统中至少存在一个具有管理员权限的普通用户,否则将导致管理员无法远程管理服务器,造成“锁死”的严重后果。

需要创建一个新用户,创建一个名为 admin 的用户:

adduser admin

将该用户添加到 sudo 组(在 Debian/Ubuntu 系统中)或 wheel 组(在 RHEL/CentOS 系统中),以 Debian/Ubuntu 为例:

usermod -aG sudo admin

为了确保权限生效,建议切换到新用户并进行测试:

su admin
sudo whoami

如果命令返回 root,则说明该用户已成功获得 sudo 权限,建议配置 sudo 免密操作或根据安全策略要求保留密码验证,但必须确保权限链条畅通。

核心实施:修改 SSH 配置文件

Linux 系统的远程登录服务主要由 SSH(Secure Shell)提供,其主配置文件通常位于 /etc/ssh/sshd_config,要禁用 root 登录,必须修改该文件中的关键参数。

Linux怎么禁用root账户,禁用root后如何登录系统?

使用文本编辑器(如 vim 或 nano)打开配置文件:

sudo vim /etc/ssh/sshd_config

在文件中找到 #PermitRootLogin yes 这一行,该行可能被注释掉(以 开头),且参数值可能不同。必须将其修改为 no,并确保行首没有 号,即取消注释,修改后的内容应如下所示:

PermitRootLogin no

这里需要深入理解 PermitRootLogin 的不同参数值,以体现专业配置的深度:

  • yes:允许 root 使用密码登录(极不安全)。
  • prohibit-password:仅允许 root 使用密钥登录,禁止密码登录,虽然比 yes 安全,但仍不建议直接暴露 root 账户。
  • no:完全禁止 root 登录,这是最推荐的安全配置。

修改完成后,保存并退出编辑器。此时配置尚未生效,必须重启 SSH 服务使更改生效:

sudo systemctl restart sshd

或者在某些旧版系统中使用:

sudo service ssh restart

进阶策略:锁定 root 密码与 PAM 限制

仅仅修改 SSH 配置文件虽然能阻断远程攻击,但如果攻击者通过其他途径(如 Web 漏洞提权)获得了 shell 权限,他们仍可能尝试切换到 root 用户,为了进一步加固,可以采取锁定 root 密码的措施。

锁定 root 密码意味着 root 账户无法再被用于直接的密码认证(包括本地和远程),但依然可以通过 sudo 命令由普通用户提权使用,执行以下命令:

sudo passwd -l root

该命令会将 /etc/shadow 文件中 root 用户的密码字段前加上一个 或 ,从而使密码失效,需要注意的是,这并不影响 sudo 机制,因为 sudo 并不依赖 root 的密码哈希值,而是依赖策略配置文件(/etc/sudoers)。

Linux怎么禁用root账户,禁用root后如何登录系统?

对于极高安全级别的服务器,还可以利用 PAM(Pluggable Authentication Modules)限制 root 登录的终端,编辑 /etc/securetty 文件(如果存在),该文件列出了 root 允许登录的终端设备,为了安全,可以清空该文件内容或注释掉所有 tty 行,这意味着 root 用户甚至无法通过物理控制台直接登录,只能通过普通用户 su 或 sudo 切换,这在物理安全存在风险的场景下尤为重要。

验证配置与应急恢复方案

配置完成后,切勿立即断开当前的 SSH 连接,建议开启一个新的终端窗口或使用隐私模式尝试直接 root 登录:

ssh root@your_server_ip

此时系统应拒绝连接或提示“Permission denied”,说明禁用生效,随后,尝试使用普通用户 admin 登录,并执行 sudo 命令,确保管理功能正常。

如果在配置过程中出现失误导致无法登录,需要通过服务提供商的“VNC 控制台”或“救援模式”进行恢复,在救援模式下挂载磁盘,编辑 /etc/ssh/sshd_config 文件,将 PermitRootLogin 改回 yes,即可恢复 root 访问权限,这也是为什么在进行此类高风险操作前,必须熟悉服务器控制台操作的原因。

相关问答

问题 1:禁用 root 登录后,如何执行需要 root 权限的系统维护命令?
解答: 禁用 root 登录后,日常维护工作完全由具备 sudo 权限的普通用户完成,当需要执行管理员命令时,只需在命令前加上 sudo 即可,更新系统软件包可以使用 sudo apt update && sudo apt upgrade,系统会提示输入当前用户的密码(而非 root 密码)进行验证,如果需要长时间维持 root 环境进行操作,可以使用 sudo -isudo -s 切换到 root shell,操作完成后输入 exit 退回普通用户。

问题 2:我已经设置了 PermitRootLogin no,为什么日志显示仍然有 IP 在尝试登录 root?
解答: 这属于正常现象,设置 PermitRootLogin no 后,SSH 服务会在认证阶段拒绝这些请求,攻击者无法成功登录,日志中的记录仅表示有人尝试连接,并不代表防御失效,为了减少日志垃圾邮件并进一步节省系统资源,建议结合防火墙(如 UFW 或 iptables)或使用 Fail2Ban 等工具,自动封禁频繁尝试登录的恶意 IP 地址,实现主动防御。

通过上述步骤,我们构建了一个分层防御体系,从切断远程入口到锁定本地认证,全方位提升了 Linux 服务器的安全基线,安全加固是一个持续的过程,建议定期检查系统日志,确保每一项配置都在发挥应有的作用,如果您在实施过程中遇到特定的环境问题,欢迎在评论区分享您的配置细节,我们将共同探讨解决方案。

赞(0)
未经允许不得转载:好主机测评网 » Linux怎么禁用root账户,禁用root后如何登录系统?