在 Linux 中禁用 root 帐户的 4 种方法

account 是 Linux 和其他类 Unix 操作系统上的最终帐户。此帐户可以访问系统上的所有命令和文件,并具有完整的读、写和执行权限。它用于在系统上执行任何类型的任务;到,,等等。

因为用户拥有绝对的权力,他/她执行的任何操作对系统都至关重要。在这方面,如有任何错误,用户可能会对系统的正常运行产生巨大的影响。此外,该帐户还可能因意外、恶意或故意忽视政策而不当或不当使用而被滥用。

因此,建议在 Linux 服务器中禁用 root 访问权限,而是创建一个管理帐户,该帐户应配置为使用以下命令获得 root 用户权限:,在服务器上执行关键任务。

在本文中,我们将解释在 Linux 中禁用 root 用户帐户登录的四种方法。

注意力:在阻止访问之前帐户,确保您已创建一个管理帐户,能够使用获得 root 用户权限,使用并为该用户帐户提供一个强密码。旗帜-m意味着创建用户的主目录并且-c允许指定评论:

# useradd -m -c "Admin User" admin
# passwd admin

接下来,使用以下命令将此用户添加到适当的系统管理员组中:,其中开关-a表示附加用户帐户和-G指定一个组来添加用户(wheel 或 sudo 取决于您的 Linux 发行版):

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu 

创建具有管理权限的用户后,切换到该帐户以阻止 root 访问。

# su admin

1. 更改root用户的Shell

禁用 root 用户登录的最简单方法是将其 shell 更改为/bin/bash或者/bin/bash(或任何其他允许用户登录的 shell)/sbin/nologin,在/etc/密码文件,您可以使用任何您喜欢的命令行编辑器打开该文件进行编辑,如图所示。

  
$ sudo vim /etc/passwd

更改线路:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin
更改 root 用户 Shell

保存文件并关闭它。

从现在开始,当用户登录后,他/她将收到消息“该帐户当前不可用。” 这是默认消息,但是,您可以更改它并在文件中设置自定义消息/etc/nologin.txt

此方法仅对需要 shell 进行用户登录的程序有效,否则,须藤,文件传输协议电子邮件客户端可以访问root帐户。

2. 禁用通过控制台设备 (TTY) 进行 root 登录

第二种方法使用聚丙烯酰胺模块称为pam_securetty,仅当用户登录“安全”TTY,如列表中所定义/etc/securetty

上面的文件允许您指定哪个电传打字员允许 root 用户登录的设备,清空此文件将阻止 root 用户登录连接到计算机系统的任何设备。

要创建空文件,请运行。

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

该方法有一些限制,它只影响登录、显示管理器等程序(即通用数据管理,克德姆西德米)和其他启动 TTY 的网络服务。 su、sudo、ssh 和其他相关 openssh 工具等程序将有权访问 root 帐户。

3. 禁用 SSH Root 登录

访问远程服务器或 VPS 最常见的方式是通过 SSH,要阻止 root 用户登录,您需要编辑/etc/ssh/sshd_config文件。

$ sudo vim /etc/ssh/sshd_config

然后取消注释(如果有注释)该指令允许root登录并将其值设置为no如屏幕截图所示。

在 SSH 中禁用 root 登录

完成后,保存并关闭文件。然后重新启动sshd服务来应用最近的配置更改。

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

您可能已经知道,此方法仅影响 openssh 工具集,ssh、scp、sftp 等程序将被阻止访问 root 帐户。

4. 通过 PAM 限制 root 对服务的访问

可插拔的身份验证模块聚丙烯酰胺简而言之)是 Linux 系统上的一种集中式、可插拔式、模块化且灵活的身份验证方法。 PAM,通过/lib/security/pam_listfile.so模块,允许非常灵活地限制特定帐户的权限。

上述模块可用于引用不允许通过某些目标服务(例如登录、ssh 和任何 PAM 感知程序)登录的用户列表。

在这种情况下,我们希望通过限制对登录和 sshd 服务的访问来禁用 root 用户对系统的访问。首先打开并编辑目标服务的文件/etc/pam.d/目录如图所示。

$ sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

接下来,在两个文件中添加以下配置。

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

完成后,保存并关闭每个文件。然后创建纯文件/etc/ssh/deniedusers其中每行应包含一项且不可读。

在其中添加名称 root,然后保存并关闭它。

$ sudo vim /etc/ssh/deniedusers

还要为此设置所需的权限。

$ sudo chmod 600 /etc/ssh/deniedusers

此方法仅影响可识别 PAM 的程序和服务。您可以通过 ftp 和电子邮件客户端等阻止 root 访问系统。

有关更多信息,请参阅相关手册页。

$ man pam_securetty
$ man sshd_config
$ man pam

就这样!在本文中,我们解释了在 Linux 中禁用 root 用户登录(或帐户)的四种方法。您有任何意见、建议或问题,请随时通过下面的反馈表与我们联系。