在 Linux 上不活动的用户自动退出

本文介绍在类Unix系统上实现自动登出非活动用户的三种方法。包括编辑~/.bashrc或~/.bash_profile,创建autologout.sh脚本,以及修改SSH配置仅针对远程会话。这些方法适用于系统管理员保障网络安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

让我们想象这么一个场景。你有一台服务器经常被网络中各系统的很多个用户访问。有可能出现某些用户忘记登出会话让会话保持会话处于连接状态。我们都知道留下一个处于连接状态的用户会话是一件多么危险的事情。有些用户可能会借此故意做一些损坏系统的事情。而你,作为一名系统管理员,会去每个系统上都检查一遍用户是否有登出吗?其实这完全没必要的。而且若网络中有成百上千台机器,这也太耗时了。不过,你可以让用户在本机或 SSH 会话上超过一定时间不活跃的情况下自动登出。本教程就将教你如何在类 Unix 系统上实现这一点。一点都不难。跟我做。

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

有三种实现方法。让我们先来看第一种方法。

方法 1:

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

TMOUT=100

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

source ~/.bash_profile

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

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 文件:

$ sudo vi /etc/ssh/sshd_config
添加/修改下面行:
ClientAliveInterval 100
ClientAliveCountMax 0
保存并退出该文件。重启 sshd 服务让改动生效。
$ sudo systemctl restart sshd
现在,任何人从远程系统通过 SSH 登录本系统,都会在 100 秒不活动后自动登出了。

 

转载于:https://www.cnblogs.com/xiaoxiaoMrHuang/p/10855073.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值