作为系统管理员,您将不可避免地要执行预定的系统维护在某个时刻或另一个时刻。有几次,您的系统也可能会遇到一些问题,您将被迫放下它来解决问题。无论什么情况,最好阻止非 root(普通)用户连接到系统。
另请阅读:在 Linux 中禁用或启用 SSH Root 登录并限制 SSH 访问
在本文中,我们将介绍如何使用以下命令阻止非 root 用户登录/etc/nologin文件以及登录Linux 中的 shell。我们将研究如何设置一条消息来向用户解释实际发生的情况。
如何使用 /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 protected].
现在你可以测试一下是否一切正常;正如您从下面的屏幕截图中看到的,普通用户tecmint
无法登录。

如何使用 nologin Shell 阻止用户登录
此方法的工作方式略有不同:它仅阻止用户访问 shell。但他或她可以通过诸如文件传输协议用户连接到系统不一定需要 shell。
此外,它还可以允许您在特殊情况下阻止特定用户的 shell 访问。
在 RHEL/CentOS/Fedora 上
只需使用chsh(改变外壳) 命令来更改用户 shell/etc/密码文件来自类似/bin/bash
或者/bin/sh
到/sbin/nologin
意思是拒绝登录。
# chsh -s /bin/nologin tecmint
在 Debian/Ubuntu 上
在这里,你必须使用/bin/假文件。以下命令更改用户技术的外壳到/bin/false
意思是不执行任何操作(在用户提供登录凭据后):
$ sudo chsh -s /bin/false tecmint
您可能还想阅读以下相关文章。
- 如何在 Ubuntu 中启用和禁用 root 登录
- 在 RHEL/CentOS 7 中重置/恢复忘记的 Root 用户帐户密码
- 如何使用 chroot Jail 将 SFTP 用户限制到主目录
- 如何在 Linux 中设置和取消设置本地、用户和系统范围的环境变量
现在就这些了!如果您对此主题有任何问题或其他想法要分享,请使用下面的评论表。
嘿 TechMint 读者,
令人兴奋的消息!每个月,我们的顶级博客评论者都有机会赢得丰厚奖励,例如免费的 Linux 电子书,例如红细胞认证工程师,红十字会协会,LFCS,学习Linux, 和awk, 每个值20 美元!
学习在下面分享您的想法!
