发新帖

[Linux] centos 命令行界面超时退出时间设置

零下一度 9小时前 7

方法一:使用 TMOUT 环境变量(最推荐)

这是最通用、简单的方法,能对本地终端和SSH远程登录的Shell会话生效。

1. 临时设置(仅对当前会话有效)

直接在终端执行以下命令,单位是秒。例如,设置为10分钟(600秒)后无操作自动退出:

export TMOUT=600

这个设置只对当前终端窗口有效,关闭后即失效。

2. 永久设置(对所有用户生效)

编辑系统级配置文件 /etc/profile

sudo vi /etc/profile

在文件末尾添加以下内容

export TMOUT=600
readonly TMOUT

export TMOUT=600:设置超时时间为600秒。

readonly TMOUT:将变量设为只读,防止用户自行修改。

保存文件后,执行以下命令使配置立即生效,或重新登录系统:

source /etc/profile

3. 永久设置(仅对当前用户生效)

如果只想为特定用户设置,可以编辑该用户家目录下的 ~/.bashrc 或 ~/.bash_profile 文件

vi ~/.bashrc

在文件末尾添加相同内容:

export TMOUT=600
readonly TMOUT

保存后执行 source ~/.bashrc 使其生效。

验证配置:执行 echo $TMOUT,如果返回你设置的值(如600),则说明配置成功


方法二:修改SSH服务端配置(仅对SSH连接有效)

此方法只对通过SSH协议远程登录的用户生效。

编辑SSH服务端配置文件:

sudo vi /etc/ssh/sshd_config

在文件中添加或修改以下两个参数

ClientAliveInterval 600
ClientAliveCountMax 0

ClientAliveInterval 600:表示每隔600秒(10分钟)服务器会向客户端发送一次心跳请求。

ClientAliveCountMax 0:当设置为0时,如果客户端在ClientAliveInterval时间内没有响应,服务器会直接断开连接,实现超时退出效果

保存文件后,需要重启SSH服务使配置生效:

sudo systemctl restart sshd

其他相关超时设置

su 命令超时:su 命令的超时通常也是由 TMOUT 变量控制的。如果不想让 su 切换后自动退出,可以检查并移除 /etc/profile 等文件中的 TMOUT 设置。

sudo 密码超时:这控制的是执行 sudo 后,再次输入密码的间隔时间,而非会话超时。可以通过 visudo 命令修改 timestamp_timeout 值


总结与建议

特性TMOUT 变量SSH服务端配置
适用范围本地终端、SSH会话等所有Shell环境针对SSH远程连接
配置难度简单稍复杂
生效方式重新登录或 source 配置文件需重启SSH服务
灵活性可针对全局或特定用户设置全局设置,影响所有SSH用户



建议:

对于一般需求,首选 TMOUT 变量,因为它配置简单且适用范围广。

超时时间建议设置在 300秒到1800秒(5-30分钟) 之间,以平衡安全性和便利性。

设置 readonly TMOUT 可以增强安全性,防止用户无意或有意更改。

对于需要长时间运行的任务(如编译、数据导入),建议使用 screen 或 tmux 等终端复用工具,或 nohup 命令,避免因超时导致任务中断



最新回复 (0)
返回
零下一度
主题数
980
帖子数
0
注册排名
1