如何在Linux的一段时间后自动注销非活动用户

时间:2020-03-21 11:42:40  来源:igfitidea点击:

本简要教程介绍了在Linux和UNIX系统中特定时间段内自动注销非活动用户的方式。

在Linux的一段时间后自动注销非活动用户

我们可以三种方式做到这一点。
让我们看看第一种方法。

方法1:

编辑~/.bashrc或者~/.bash_profile文件:

$vi ~/.bashrc

或者,

$vi ~/.bash_profile

添加以下行。

TMOUT=100

这使用户在不活动之后自动注销100秒。
我们可以根据方便定义此值。
按ESC并键入:WQ保存并关闭文件。

通过运行以下命令使更改生效:

$source ~/.bashrc

或者,

$source ~/.bash_profile

现在,让会话闲置100秒。
在不活动100秒后,我们将看到以下消息,用户将自动从会话中注销。

timed out waiting for input: auto-logout
Connection to 192.168.43.2 closed.

用户可以轻松修改此设置。
因为,~/.bashrc文件由用户自己拥有。

要修改或者删除此超时设置,只需删除上面添加的行,并通过运行"源~/.bashrc"命令使更改生效。

或者,用户可以通过运行以下命令来禁用此命令:

$export TMOUT=0

或者,

$unset TMOUT

如果要阻止用户更改设置,请按照第二种方法进行操作。

方法2:

以root用户身份登录。

创建一个名为"autologout.sh"的新文件。

# vi /etc/profile.d/autologout.sh

添加以下行:

TMOUT=100
readonly TMOUT
export TMOUT

保存并关闭文件。

使用命令用作可执行文件:

# chmod +x /etc/profile.d/autologout.sh

现在,注销或者重新启动系统。
无效用户将在100秒后自动注销。
即使他/她想要留在会话中,普通用户也无法更改此设置。
在100秒后,它们将被抛出。

这两种方法适用于本地会话和远程会话,例如:通过SSH从远程系统登录的本地登录用户或者用户登录。
在下一个方法中,我们将看到如何只自动注销非活动SSH会话,而不是本地会话。

方法3:

在此方法中,我们只会使SSH会话用户在特定的不活动期后注销。

编辑/etc/ssh/sshd_config文件:

$sudo vi /etc/ssh/sshd_config

添加/修改以下行:

ClientAliveInterval 100
ClientAliveCountMax 0

按ESC键和类型:WQ保存并关闭此文件。
重新启动SSHD服务以生效更改。

$sudo systemctl restart sshd

现在,从远程系统中SSH到此系统。
100秒后,SSH会话将自动关闭,我们将看到以下消息:

$Connection to 192.168.43.2 closed by remote host.
Connection to 192.168.43.2 closed.

现在,通过SSH从远程系统访问此系统的人将自动在不活动100秒后自动注销。