Hello! 欢迎来到小浪云!


Linux系统中实现自动登出长时间不活跃用户的方法


avatar
小浪云 2024-06-17 42


Linux系统上,我们可以使用不同的方法来实现在一段时间不活动后自动登出用户的功能。以下是三种实现方法的详细步骤:

方法一:使用TMOUT环境变量

编辑用户的配置文件,通常是 ~/.bashrc 或 ~/.bash_profile,具体取决于用户的shell环境。

在文件中添加以下行:

TMOUT=100

这会设置一个100秒的超时时间,用户在停止操作后100秒将自动登出。你可以根据需要调整这个值。

保存并关闭文件后,运行以下命令使更改生效:

source ~/.bashrc

source ~/.bash_profile

现在,当用户在100秒内没有任何操作时,会看到类似下面的信息,并自动退出会话。

timed out waiting for input: auto-logout  Connection to 192.168.13.2 closed.

注意:这种方法设置的超时时间可以被用户轻易修改。因此,如果需要更严格的控制,可以考虑使用其他方法。

方法二:修改全局配置

以root用户身份登录系统。创建一个名为autologout.sh的新文件,将其放置在/etc/profile.d/目录下。这个目录用于存放对所有用户都生效的配置脚本。

编辑该文件并添加以下内容:

TMOUT=100  readonly TMOUT  export TMOUT

保存并退出文件后,为脚本添加执行权限:

chmod +x /etc/profile.d/autologout.sh

现在,登出或重启系统后,非活动用户将在100秒后自动登出。这种方法使得普通用户无法修改超时设置,从而强制他们在一段时间后登出。

方法三:针对ssh会话进行设置

编辑ssh服务器的配置文件/etc/ssh/sshd_config。在文件中找到或添加以下行:

ClientAliveInterval 100  ClientAliveCountMax 0

保存并退出文件后,重启ssh服务以使更改生效:

systemctl restart sshd

现在,当远程用户通过ssh登录系统并在100秒内没有任何活动时,他们的会话将自动关闭,并显示类似下面的消息:

# Connection to 192.168.13.2 closed by remote host.  Connection to 192.168.13.2 closed.

相关阅读