帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux系统让一段时间不活动的用户自动登出方法

Linux系统让一段时间不活动的用户自动登出方法

2023-12-11 13:49:58 221

Linux系统让一段时间不活动的用户自动登出方法

在Linux系统上实现一段时间后自动登出非活动用户

有三种实现方法。

方法 1:

编辑 ~/.bashrc 或 ~/.bash_profile 文件:

# vi ~/.bashrc

# vi ~/.bash_profile

将下面行加入其中:

TMOUT=100

这会让用户在停止动作100秒后自动登出。你可以根据需要定义这个值。保存并关闭文件。

运行下面命令让更改生效:

# source ~/.bashrc

# source ~/.bash_profile

现在让会话闲置100秒。100秒不活动后,你会看到下面这段信息,并且用户会自动退出会话。

timed out waiting for input: auto-logout

Connection to 192.168.13.2 closed.

该设置可以轻易地被用户所修改。因为,~/.bashrc 文件被用户自己所拥有。

要修改或者删除超时设置,只需要删掉上面添加的行然后执行source ~/.bashrc 命令让修改生效。

此外,用户也可以运行下面命令来禁止超时:

# export TMOUT=0

# unset TMOUT

若你想阻止用户修改该设置,使用下面方法代替。

方法 2:

以 root 用户登录。

创建一个名为autologout.sh的新文件。

# vi /etc/profile.d/autologout.sh

加入下面内容:

TMOUT=100

readonly TMOUT

export TMOUT

保存并退出该文件。

为它添加可执行权限:

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

现在,登出或者重启系统。非活动用户就会在100秒后自动登出了。普通用户即使想保留会话连接但也无法修改该配置了。他们会在100秒后强制退出。

这两种方法对本地会话和远程会话都适用(即本地登录的用户和远程系统上通过SSH登录的用户)。下面让我们来看看如何实现只自动登出非活动的SSH会话,而不自动登出本地会话。

方法 3:

这种方法,我们只会让SSH会话用户在一段时间不活动后自动登出。

编辑/etc/ssh/sshd_config文件:

# vi /etc/ssh/sshd_config

添加/修改下面行:

ClientAliveInterval 100

ClientAliveCountMax 0

保存并退出该文件。重启sshd服务让改动生效。

# systemctl restart sshd

现在,在远程系统通过ssh登录该系统。100秒后,ssh会话就会自动关闭了,你也会看到下面消息:

# Connection to 192.168.13.2 closed by remote host.

Connection to 192.168.13.2 closed.

现在,任何人从远程系统通过 SSH 登录本系统,都会在100秒不活动后自动登出了。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: