作为系统管理员,您迟早会不可避免地执行定期系统维护。有时,您的系统可能也会遇到一些问题,您将不得不关闭它来解决这些问题。无论情况如何,防止非根(普通)用户连接到系统是一个好主意。
阅读更多: 在Linux中禁用或启用SSH Root登录并限制SSH访问
在本文中,我们将描述如何使用/etc/nologin文件以及Linux中的nologin 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。但他或她可以通过诸如ftp这样的程序登录系统,这些程序不一定需要用户连接到系统的Shell。
此外,它还可以允许您在特殊情况下阻止特定用户访问Shell。
在RHEL/CentOS/Fedora
只需使用chsh(change shell)命令,在/etc/passwd文件中将用户的Shell从例如/bin/bash
或/bin/sh
更改为/sbin/nologin
,表示拒绝登录。
# chsh -s /bin/nologin tecmint
在Debian/Ubuntu
这里,您必须使用/bin/false文件。以下命令将用户tecmint的Shell更改为/bin/false
,表示不执行任何操作(用户提供登录凭据后):
$ sudo chsh -s /bin/false tecmint
您可能还想阅读以下相关文章。
- 如何在Ubuntu中启用和禁用root登录
- 在RHEL/CentOS 7中重置/恢复遗忘的root用户帐户密码
- 如何使用chroot监狱将SFTP用户限制在家目录中
- 如何在Linux中设置和取消本地、用户和系统范围的环境变量
现在就是这些了!如果您对这个话题有任何问题或额外想法要分享,请利用下面的评论表单。
Source:
https://www.tecmint.com/block-or-disable-normal-user-logins-in-linux/