CentOS 7 中的 TMOUT 在哪里设置?我怎样才能禁用它?

Pat*_*atS 6 bash logout timeout

我知道我以前追踪过这个,但找不到答案。

当我在 CentOS 7(来自 X Windows GNOME 或 KDE)上启动 bash shell 时,TMOUT设置的变量会导致 shell 在指定的不活动时间段后超时。

该变量是只读的,因此我无法取消设置或更改它!

unset TMOUT
# prints bash: unset: TMOUT: cannot unset: readonly variable
export TMOUT=99999
# prints bash: TMOUT: readonly variable
Run Code Online (Sandbox Code Playgroud)

通常/etc/bashrc设置这些东西。我尝试使用以下方法找到它的设置位置:

grep TMOUT $HOME/.??* /etc/* 2> /dev/null
# not found
Run Code Online (Sandbox Code Playgroud)

所以我认为TMOUT实际上并没有设置/etc/bashrc它,或者它没有按照我正在寻找的方式设置。

已提出其他问题,但它们不一样或没有帮助。

Pat*_*atS 6

为了禁用超时,我更改了文件 /etc/profile.d/local.sh。我注释掉了设置超时变量并将其设为只读的行。

vi /etc/profile.d/local.sh
#export TMOUT=43200
#readonly TMOUT
Run Code Online (Sandbox Code Playgroud)

另一种方法是设置 TMOUT=0,这意味着禁用超时。bash TMOUT 的手册页是http://man7.org/linux/man-pages/man1/bash.1.html

最重要的更改是注释掉使变量“只读”的行。如果变量可以更改,那么我可以在我自己的登录设置(例如,$HOME/.bashrc 或 .bash_profile)中修改它。

  • 通常,出于合规性原因,配置应保持设置状态。也就是说,有没有办法有效地覆盖此配置值,使环境变量暂时只读?这里的想法是,根据系统管理员的判断,可以为特定会话取消设置该值,但默认情况下仍为所有其他会话启用该值。 (2认同)