📜  如何在 Linux 中阻止或禁用普通用户登录?(1)

📅  最后修改于: 2023-12-03 14:52:25.576000             🧑  作者: Mango

如何在 Linux 中阻止或禁用普通用户登录?

在 Linux 系统中,超级管理员(root)有权限对普通用户进行管理,包括禁用或阻止其登录。本文将介绍如何在 Linux 中禁用或阻止普通用户登录的方法。

方法一:修改 /etc/passwd 文件

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 命令有以下几个:

  • /sbin/nologin
  • /bin/false
  • /usr/sbin/nologin
  • /usr/bin/false

以禁用 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 将无法登录系统。

方法二:修改 /etc/nologin 文件

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 文件可以更精细的控制用户的登录权限。需要注意的是,禁用或阻止普通用户登录时应谨慎,以免影响正常操作。

返回代码片段

更改用户shell命令禁止登录

sudo vi /etc/passwd

找到需要禁止登录的用户行,将其 shell 命令更改为 /sbin/nologin 或其他禁止命令,保存并退出 /etc/passwd 文件即可。

创建 /etc/nologin 文件

sudo touch /etc/nologin

需要注意的是,在需要开放登录时,应删除 /etc/nologin 文件。