如何在Linux上让一段时间不活动的用户自动登出

系统 Linux
你有一台服务器经常被网络中各系统的很多个用户访问。你可以让用户在本机或 SSH 会话上超过一定时间不活跃的情况下自动登出。本教程就将教你如何在类 Unix 系统上实现这一点。

[[217374]]

让我们想象这么一个场景。你有一台服务器经常被网络中各系统的很多个用户访问。有可能出现某些用户忘记登出会话让会话保持会话处于连接状态。我们都知道留下一个处于连接状态的用户会话是一件多么危险的事情。有些用户可能会借此故意做一些损坏系统的事情。而你,作为一名系统管理员,会去每个系统上都检查一遍用户是否有登出吗?其实这完全没必要的。而且若网络中有成百上千台机器,这也太耗时了。不过,你可以让用户在本机或 SSH 会话上超过一定时间不活跃的情况下自动登出。本教程就将教你如何在类 Unix 系统上实现这一点。一点都不难。跟我做。

 

在 Linux 上实现一段时间后自动登出非活动用户

有三种实现方法。让我们先来看***种方法。

 

方法 1:

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

  1. $ vi ~/.bashrc

或,

  1. $ vi ~/.bash_profile

将下面行加入其中:

  1. TMOUT=100

这会让用户在停止动作 100 秒后自动登出。你可以根据需要定义这个值。保存并关闭文件。

运行下面命令让更改生效:

  1. $ source ~/.bashrc

或,

  1. $ source ~/.bash_profile

现在让会话闲置 100 秒。100 秒不活动后,你会看到下面这段信息,并且用户会自动退出会话。

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

该设置可以轻易地被用户所修改。因为,~/.bashrc 文件被用户自己所拥有。

要修改或者删除超时设置,只需要删掉上面添加的行然后执行 source ~/.bashrc 命令让修改生效。

此外,用户也可以运行下面命令来禁止超时:

  1. $ export TMOUT=0

或,

  1. $ unset TMOUT

若你想阻止用户修改该设置,使用下面方法代替。

 

方法 2:

以 root 用户登录。

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

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

加入下面内容:

  1. TMOUT=100
  2. readonly TMOUT
  3. export TMOUT

保存并退出该文件。

为它添加可执行权限:

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

现在,登出或者重启系统。非活动用户就会在 100 秒后自动登出了。普通用户即使想保留会话连接但也无法修改该配置了。他们会在 100 秒后强制退出。

这两种方法对本地会话和远程会话都适用(即本地登录的用户和远程系统上通过 SSH 登录的用户)。下面让我们来看看如何实现只自动登出非活动的 SSH 会话,而不自动登出本地会话。

 

方法 3:

这种方法,我们只会让 SSH 会话用户在一段时间不活动后自动登出。

编辑 /etc/ssh/sshd_config 文件:

  1. $ sudo vi /etc/ssh/sshd_config

添加/修改下面行:

  1. ClientAliveInterval 100
  2. ClientAliveCountMax 0

保存并退出该文件。重启 sshd 服务让改动生效。

  1. $ sudo systemctl restart sshd

现在,在远程系统通过 ssh 登录该系统。100 秒后,ssh 会话就会自动关闭了,你也会看到下面消息:

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

现在,任何人从远程系统通过 SSH 登录本系统,都会在 100 秒不活动后自动登出了。

希望本文能对你有所帮助。我马上还会写另一篇实用指南。如果你觉得我们的指南有用,请在您的社交网络上分享,支持 我们!

祝您好运! 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2013-08-01 13:11:15

AndroidWindows

2020-10-26 10:11:45

Jupyter Not早起Python开发

2023-07-21 12:49:15

苹果GPT人工智能

2023-10-19 11:27:22

Linux记账工具

2021-01-18 08:09:20

Java程序JIT

2019-09-19 11:52:59

Linux脚本语言Vim

2021-10-13 10:37:19

人工智能数据中心AI

2018-05-10 15:05:41

Linux用户日期命令

2018-07-20 14:20:24

Linux用户组管理员

2020-01-03 16:06:38

代码开发工具

2020-04-03 10:14:57

内存蠕虫代码web安全

2020-07-03 07:00:00

Linux用户活动

2014-09-09 14:47:20

2023-09-05 09:42:18

if分支源码

2011-07-12 09:33:43

SQL Azure

2022-08-30 19:14:31

LinuxBash

2018-11-02 16:16:41

程序硬盘存储

2022-02-08 09:00:00

智能自动化人工智能RPA

2011-08-22 14:50:39

ssh

2019-08-13 16:10:38

UbuntuLinux时间同步
点赞
收藏

51CTO技术栈公众号