网站搜索

如何在 Linux 中阻止或禁用正常用户登录


作为系统管理员,您不可避免地会在某个时候执行计划的系统维护。有几次,您的系统也可能会遇到一些问题,您将被迫放下它来解决问题。无论什么情况,最好阻止非 root(普通)用户连接到系统。

另请阅读:在 Linux 中禁用或启用 SSH Root 登录并限制 SSH 访问

在本文中,我们将介绍如何在 Linux 中使用 /etc/nologin 文件以及 nologin shell 来阻止非 root 用户登录。我们将研究如何设置一条消息来向用户解释实际发生的情况。

如何使用 /etc/nologin 文件阻止用户登录

/etc/nologin 文件的主要功能是在关闭过程中向尝试登录系统的用户显示一条消息(存储在该文件中)。

一旦向用户显示消息,登录过程就会终止,从而阻止用户登录系统。

这可用于通过手动创建文件来阻止用户登录,如下所示。

vi /etc/nologin

将以下消息添加到文件中,该消息将显示给尝试登录系统的用户。

The Server is down for a routine maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin [email . 

现在你可以测试一下是否一切正常;正如您从下面的屏幕截图中看到的,普通用户 howtoing 无法登录。

如何使用 nologin Shell 阻止用户登录

此方法的工作方式略有不同:它仅阻止用户访问 shell。但他或她可以通过诸如 ftp 之类的程序登录到系统,用户连接到系统不一定需要 shell。

此外,它还可以允许您在特殊情况下阻止特定用户的 shell 访问。

在 RHEL/CentOS/Fedora 上

只需使用 chsh更改 shell)命令即可将 /etc/passwd 文件中的用户 shell 从 /bin/bash 等更改/bin/sh/sbin/nologin 表示拒绝登录。

chsh -s /bin/nologin tecmint

在 Debian/Ubuntu 上

在这里,您必须使用 /bin/false 文件。下面的命令将用户 howtoing's shell 更改为 /bin/false ,表示不执行任何操作(在用户提供登录凭据后):

sudo chsh -s /bin/false tecmint

您可能还想阅读以下相关文章。

  1. 如何在 Ubuntu 中启用和禁用 root 登录
  2. 在 RHEL/CentOS 7 中重置/恢复忘记的 Root 用户帐户密码
  3. 如何使用 chroot Jail 将 SFTP 用户限制到主目录
  4. 如何在 Linux 中设置和取消设置本地、用户和系统范围的环境变量

目前为止就这样了!如果您对此主题有任何问题或其他想法要分享,请使用下面的评论表。