
一点号为了开发者昨天
说明
Linux远程连接,可以通过在环境中设置TMOUT来达到用户输入空闲一段时间后自动断开的效果,防止过多的远程连接同时提高安全性。
设置
将以下字段加入到/etc/profile 中即可(对所有用户生效)。
export TMOUT=900 # 设置900秒内用户无 *** 作就字段断开终端 readonly TMOUT # 将值设置为readonly 防止用户更改
取消设置
设置了readonly 之后在当前shell下是无法取消的,需要先将/etc/profile 中设置readonly行注释起来或直接删除,logout 后重新login 。
$ export TMOUT=900 $ readonly TMOUT $ unset TMOUT -bash: unset: TMOUT: cannot unset: readonly variable
本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux *** 作系统
查了资料,这个可能和SSH超时自动断开是一样的,可以修改以下2个配置参数来解决。1、$TMOUT 系统环境变量
# 用以下命令判断是否是否设置了该参数
echo $TMOUT
# 如果输出空或0表示不超时,大于0的数字n表示n秒没有收入则超时
# 修改方法
vi /etc/profile
# ----------------------------
export TMOUT=900
# ----------------------------
# 将以上900修改为0就是设置不超时
source /etc/profile
# 让配置立即生效
2、sshd 服务配置
cd /etc/ssh
# 查看sshd_config中关于客户端活动状态的配置
grep ClientAlive sshd_config
# 默认配置如下
# ----------------------------
#ClientAliveInterval 0
#ClientAliveCountMax 3
# ----------------------------
# ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。
# ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端不会不响应,使用默认值3即可。
# 备份原配置文件
cp sshd_config sshd_config.bak
# 启用客户端活动检查,每60秒检查一次,3次不活动断开连接
sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 60/g" sshd_config
sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g" sshd_config
# 确认修改
grep ClientAlive sshd_config
# 比较配置文件差异
diff sshd_config sshd_config.bak
# 重新加载ssd配置,让配置生效
service sshd reload
超时注销不需要设置HISTSIZE=1000,只要设置TMOUT=300就可以啦!你要我说原理就太复杂了,只简单的述下,首先TMOUT是SHELL的一个变量,SHELL的内部有一个每秒读取TMOUT变量和重置TMOUT变量的机制,当300秒没有任何 *** 作时,就注销登陆!如果有 *** 作即把TMOUT变量重置到用户设置的时间。
欢迎互相学习 ,我的博客:www.itwhy.org
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)