新手应在/etc/profile中添加export TMOUT=600实现全局会话超时,适用于交互式登录shell;需配合/etc/bash.bashrc、用户级配置及sshd_config中ClientAliveInterval/CountMax设置,确保SSH环境有效生效。

新手可以通过在系统级配置文件中设置 TMOUT 变量,让命令行会话在空闲一段时间后自动退出。这个操作简单、生效快,是提升 Linux 终端安全性的基础一步。
在 /etc/profile 中统一设置所有用户超时
这是最推荐给新手的方式——改一个文件,所有新登录的用户都生效:
- 用 root 权限编辑:
sudo nano /etc/profile - 在文件末尾新增一行:
export TMOUT=600(表示 10 分钟无操作自动登出) - 保存退出后,新打开的终端或重新登录即生效;已有会话需执行
source /etc/profile才能加载 - 注意不要写成
TMOUT=600而不加export,否则变量不会传递给子 shell
确认生效范围和常见误区
TMOUT 只对交互式登录 shell 生效(比如 TTY 控制台、SSH 首次登录),但有几点新手容易踩坑:
- 它对图形界面里的终端模拟器(如 GNOME Terminal)默认无效,因为它们通常启动的是非登录 shell;如需覆盖,可额外在
/etc/bash.bashrc中也加export TMOUT=600 - 用户若在自己的
~/.bashrc里写了unset TMOUT或TMOUT=0,就会绕过全局设置 - 某些发行版(如 Debian/Ubuntu)默认用
dash作/bin/sh,而 dash 不支持 TMOUT;确保你用的是 bash 登录(检查echo $SHELL)
配合 SSH 连接避免“假超时”
只设 TMOUT 对 SSH 会话不够——网络连接可能保持活跃,但 shell 却已退出,导致黑屏卡住。建议同步调整 SSH 服务端:
- 编辑
/etc/ssh/sshd_config,添加或修改两行: -
ClientAliveInterval 300(每 5 分钟发一次心跳) -
ClientAliveCountMax 2(连续 2 次无响应就断开,即最多空闲 10 分钟) - 改完运行
sudo systemctl restart sshd重启服务
验证和调试小技巧
设完别急着走,快速验证是否真起作用:
- 新开终端,输入
echo $TMOUT,应输出600 - 输入
sleep 610后不操作,等待约 10 分钟,看是否自动退出 - 如果没退出,检查是否有其他配置覆盖了它:运行
grep -r TMOUT /etc/profile.d/,看看是否有脚本重置了该变量

















