📅  最后修改于: 2023-12-03 14:52:25.576000             🧑  作者: Mango
在 Linux 系统中,超级管理员(root)有权限对普通用户进行管理,包括禁用或阻止其登录。本文将介绍如何在 Linux 中禁用或阻止普通用户登录的方法。
Linux系统中,用户信息存放在 /etc/passwd 文件中。我们可以通过修改该文件来禁止或阻止普通用户登录。
下面是一个 /etc/passwd 文件的样例:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:user1:/home/user1:/bin/bash
user2:x:1001:1001:user2:/home/user2:/bin/bash
在每个用户信息后面有一个 shell 命令,标识了该用户登录时使用的命令解释器。默认情况下,大多数用户都使用 bash 命令解释器。
现在,我们可以通过将用户的 shell 命令更改为禁止登录 shell 命令,来禁止用户登录。常用的不能执行的 shell 命令有以下几个:
以禁用 user2 用户登录为例,我们可以使用以下命令:
sudo vi /etc/passwd
找到 user2 用户的行,将其 shell 命令更改为 /sbin/nologin,修改后的 /etc/passwd 文件如下:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:user1:/home/user1:/bin/bash
user2:x:1001:1001:user2:/home/user2:/sbin/nologin
修改后,保存并退出 /etc/passwd 文件。此时,用户 user2 将无法登录系统。
Linux 系统还提供了一个 /etc/nologin 文件,如果该文件存在,用户在登录时将收到一个提示消息,告诉他们系统当前不允许登录。
我们可以使用以下命令创建 /etc/nologin 文件:
sudo touch /etc/nologin
此时,用户在登录时将会收到以下提示:
This system is temporarily unavailable due to maintenance. Please try again later.
需要注意的是,在确定要开放登录之前,需要删除 /etc/nologin 文件,否则所有用户都将无法登录系统。
以上两种方法都可以禁止或阻止用户登录 Linux 系统,但是通过修改 /etc/passwd 文件可以更精细的控制用户的登录权限。需要注意的是,禁用或阻止普通用户登录时应谨慎,以免影响正常操作。
sudo vi /etc/passwd
找到需要禁止登录的用户行,将其 shell 命令更改为 /sbin/nologin 或其他禁止命令,保存并退出 /etc/passwd 文件即可。
sudo touch /etc/nologin
需要注意的是,在需要开放登录时,应删除 /etc/nologin 文件。