linux 设置了TMOUT为什么不起效

linux 设置了TMOUT为什么不起效,第1张

设置linux空闲等待时间TMOUT

一点号为了开发者昨天

说明

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8306944.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存