从 Linux 系统自动注销非活动用户

保持与 Linux 服务器的空闲 shell 会话可能存在安全风险。 不要忘记它会消耗系统资源。

好吧,也许不是一个空闲会话,但想象一下,如果您有多个用户远程访问同一个 Linux 系统并让他们的会话空闲。

作为 Linux 系统管理员,您可以查看哪些用户登录了系统以及他们空闲了多长时间。

您可以手动将空闲用户踢出,但这很烦人,而且效率肯定不高。

让我向您展示如何从他们的 shell 中自动注销空闲用户。

方法 1:使用 TMOUT 从空闲的 shell 会话中自动注销用户

在 bash 和其他外壳,您可以使用 TMOUT 变量设置空闲注销时间。 如果在此时间段内用户没有任何活动,shell 会话将被关闭。

检查 TMOUT 是否已设置。 这些值以秒为单位。

echo $TMOUT

要进行测试,您可以像这样使用它:

TMOUT=300

这会 close 您的终端会话或 SSH 300 秒后的会话,即 5 分钟。

对于 SSH 会话,您应该会看到如下消息:

[email protected]:~# timed out waiting for input: auto-logout
Connection to 212.125.89.175 closed.

对于本地会话,您的终端应自动关闭。

但是您可能已经知道这不是设置环境变量的最佳方式。 您可以在个人用户的个人资料中设置它(或 bash profile) 或者您从 /etc/profile 为系统范围内的所有用户设置它。

假设您是系统管理员并且想要自动注销 Linux 服务器上的空闲用户,请将其设置为系统级别。

在 Vim 或 Nano 等文本编辑器中打开 /etc/profile 文件:

nano /etc/profile

并在其中添加以下行:

TMOUT=300

Save 和 close 文件。 从现在开始,任何有 5 分钟不活动的用户都将被自动注销。

这适用于本地和远程会话。 如果您只想为 SSH 会话设置它,则可以使用下一种方法。

方法 2:从空闲的 SSH 会话中自动注销用户

您可以配置 SSH 服务器以在一定的不活动时间后强制注销用户。

编辑 SSH 配置文件 (/etc/ssh/sshd_config):

sudo nano /etc/ssh/sshd_config

查找以下两个变量并删除它们起始行之前的 # 并设置如下值:

ClientAliveInterval 200
ClientAliveCountMax 3

Save 和 close 文件。

这意味着服务器将每 200 秒向客户端发送一次保持活动消息,持续 3 次。 如果它没有收到响应(意味着用户空闲),它将 close 600 秒 (200*3) 的会话。

您可以根据需要选择合适的值。

这是仅限 SSH 的方法,不会影响本地 shell 会话。

我希望这个关于自动注销用户的 Linux 技巧对您有所帮助。 订阅更多 Linux 系统管理员技巧。