产品使用与售后服务帮助
发布时间:2021-03-11 11:16 来源:A5数据
有时需要禁止用户登录到服务器系统。比如说,如果你在做维护,想保持系统状态的干净。在这个快速提示中,我们将向您展示如何禁用Linux系统的登录。
如果你看过/etc/passwd文件,你有可能看到一个用户shell设置为/usr/sbin/nologin。这告诉系统,该用户没有交互式登录系统的权限。这是个阻止特定用户登录的好办法,但另一个名为/etc/nologin的文件存在,可以阻止任何非root用户登录。
阻止所有非root用户登录系统。
要阻止所有非root用户登录系统,你可以简单地创建/etc/nologin文件。
sudo touch /etc/nologin
这将阻止任何用户。一旦他们认证,连接就会被关闭。这经常会让用户感到困惑,所以最好添加一条信息。简单的添加你想要显示的信息到文件中。你可以在你最喜欢的文本编辑器中打开文件,比如vi,nano,或者emacs,然后开始输入。或者你也可以像下面这样在文件中会员消息。
echo "System down for maintenance, try again later" | sudo tee /etc/nologin
注意:你不能用sudo使用普通的重定向,所以我们用tee命令代替。
现在,当用户试图登录时,他们将收到消息,连接将被关闭。
这样就礼貌多了。
解除封禁
要想解封或允许重新登录,只需删除/etc/nologin文件即可。
sudo rm /etc/nologin
阻止特定用户交互式登录
您可以使用nologin shell来阻止特定用户的交互式shell访问。如果你只想让用户访问FTP或类似的东西,这就很方便了。
nologin shell在不同系统中的路径不同。
在Ubuntu中,它位于/usr/sbin/nologin中。
对于Fedora来说,它位于/sbin/nologin中。
您可以使用which命令找到它的位置。
$ which nologin
/usr/sbin/nologin
要将用户shell设置为nologin,可以使用usermod命令。这里我们将把 "stacy "用户的shell设置为nologin。
usermod -s /usr/sbin/nologin stacy
解除对特定用户交互式登录的限制
要解除阻止或重新启用用户通过交互式shell登录,只需将他们的shell设置为bash(或任何你想要的shell)。
将 "stacy "用户的shell设置为bash。
usermod -s /bin/bash stacy
如果你在使用 "usermod -s "时没有任何参数,系统将为用户使用默认的shell。
现在你应该知道如何禁用用户登录系统了,也介绍了禁用所有用户登录以及特定用户的设置。