保持与 Linux 服务器的空闲 shell 会话可能存在安全风险。 不要忘记它会消耗系统资源。
好吧,也许不是一个空闲会话,但想象一下,如果您有多个用户远程访问同一个 Linux 系统并让他们的会话空闲。
作为 Linux 系统管理员,您可以查看哪些用户登录了系统以及他们空闲了多长时间。
您可以手动将空闲用户踢出,但这很烦人,而且效率肯定不高。
让我向您展示如何从他们的 shell 中自动注销空闲用户。
方法 1:使用 TMOUT 从空闲的 shell 会话中自动注销用户
在 bash 和其他外壳,您可以使用 TMOUT
变量设置空闲注销时间。 如果在此时间段内用户没有任何活动,shell 会话将被关闭。
检查 TMOUT 是否已设置。 这些值以秒为单位。
echo $TMOUT
要进行测试,您可以像这样使用它:
TMOUT=300
这会 close 您的终端会话或 SSH 300 秒后的会话,即 5 分钟。
对于 SSH 会话,您应该会看到如下消息:
[email protected]:~# timed out waiting for input: auto-logout
Connection to 212.125.89.175 closed.
对于本地会话,您的终端应自动关闭。
但是您可能已经知道这不是设置环境变量的最佳方式。 您可以在个人用户的个人资料中设置它(或 bash profile) 或者您从 /etc/profile 为系统范围内的所有用户设置它。
假设您是系统管理员并且想要自动注销 Linux 服务器上的空闲用户,请将其设置为系统级别。
在 Vim 或 Nano 等文本编辑器中打开 /etc/profile 文件:
nano /etc/profile
并在其中添加以下行:
TMOUT=300
Save 和 close 文件。 从现在开始,任何有 5 分钟不活动的用户都将被自动注销。
这适用于本地和远程会话。 如果您只想为 SSH 会话设置它,则可以使用下一种方法。
方法 2:从空闲的 SSH 会话中自动注销用户
您可以配置 SSH 服务器以在一定的不活动时间后强制注销用户。
编辑 SSH 配置文件 (/etc/ssh/sshd_config):
sudo nano /etc/ssh/sshd_config
查找以下两个变量并删除它们起始行之前的 # 并设置如下值:
ClientAliveInterval 200
ClientAliveCountMax 3
Save 和 close 文件。
这意味着服务器将每 200 秒向客户端发送一次保持活动消息,持续 3 次。 如果它没有收到响应(意味着用户空闲),它将 close 600 秒 (200*3) 的会话。
您可以根据需要选择合适的值。
这是仅限 SSH 的方法,不会影响本地 shell 会话。
我希望这个关于自动注销用户的 Linux 技巧对您有所帮助。 订阅更多 Linux 系统管理员技巧。