让我们想象这样一个场景。您有一台服务器,来自网络上不同系统的许多用户经常访问该服务器。某些用户可能会忘记注销会话而使会话处于连接状态。我们都知道保持用户会话连接是多么危险。一些用户可能会利用它来故意做一些破坏系统的事情。而作为系统管理员的你,是否到每一个系统去检查用户是否登出?其实,这是完全没有必要的。而且如果网络中有成百上千台机器,那太费时了。但是,您可以让用户在本地机器或SSH会话闲置一段时间后自动注销。本教程将教您如何在类Unix系统上执行此操作。这一点都不难。和我一起做。在Linux上实现非活跃用户一段时间后自动注销的方法有3种。我们先看第一种方法。方法1:编辑~/.bashrc或~/.bash_profile文件:$vi~/.bashrcor,$vi~/.bash_profile添加以下行:TMOUT=100这将允许用户在100秒后自动登录不活动了。您可以根据需要定义此值。保存并关闭文件。运行以下命令使更改生效:$source~/.bashrc或$source~/.bash_profile现在让会话空闲100秒。闲置100秒后,您将看到以下消息,并且用户会自动退出会话。等待输入超时:到192.168.43.2的自动注销连接已关闭。用户可以轻松修改此设置。因为,~/.bashrc文件是用户自己拥有的。要修改或删除超时设置,只需删除上面添加的行并执行source~/.bashrc命令使修改生效。此外,用户也可以运行以下命令来禁用超时:$exportTMOUT=0或者,$unsetTMOUT如果要防止用户修改此设置,请改用以下方法。方法二:以root用户登录。创建一个名为autologout.sh的新文件。#vi/etc/profile.d/autologout.sh添加以下内容:TMOUT=100readonlyTMOUTexportTMOUT保存并退出文件。向其添加可执行权限:#chmod+x/etc/profile.d/autologout.sh现在,注销或重新启动系统。非活动用户将在100秒后自动注销。普通用户即使想保持会话连接也无法修改配置。他们将在100秒后强制退出。这两种方法都适用于本地和远程会话(即,本地登录的用户和远程系统上通过SSH登录的用户)。让我们看看如何只自动注销不活动的SSH会话,而不是本地会话。方法3:在这种方法中,我们只允许SSH会话用户在一段时间不活动后自动注销。编辑/etc/ssh/sshd_config文件:$sudovi/etc/ssh/sshd_config添加/修改以下行:ClientAliveInterval100ClientAliveCountMax0保存并退出文件。重新启动sshd服务以使更改生效。$sudosystemctlrestartsshd现在通过ssh登录到远程系统。100秒后,ssh会话将自动关闭,您还将看到以下消息:$Connectionto192.168.43.2closedbyremotehost。与192.168.43.2的连接已关闭。现在,任何人都可以通过SSH从远程系统登录系统,在100秒不活动后自动注销。希望这篇文章能帮到你。我很快就会写另一篇实用指南。如果您觉得我们的指南有用,请通过在您的社交网络上分享来支持我们!祝你好运!
