首頁 > 軟體

如何在 Linux 上讓一段時間不活動的使用者自動登出

2020-06-16 16:56:28

讓我們想象這麼一個場景。你有一台伺服器經常被網路中各系統的很多個使用者存取。有可能出現某些使用者忘記登出對談讓對談保持對談處於連線狀態。我們都知道留下一個處於連線狀態的使用者對談是一件多麼危險的事情。有些使用者可能會藉此故意做一些損壞系統的事情。而你,作為一名系統管理員,會去每個系統上都檢查一遍使用者是否有登出嗎?其實這完全沒必要的。而且若網路中有成百上千台機器,這也太耗時了。不過,你可以讓使用者在本機或 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. $ sudovi/etc/ssh/sshd_config

新增/修改下面行:

  1. ClientAliveInterval100
  2. ClientAliveCountMax0

儲存並退出該檔案。重新啟動 sshd 服務讓改動生效。

  1. $ sudosystemctl 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 秒不活動後自動登出了。

希望本文能對你有所幫助。我馬上還會寫另一篇實用指南。如果你覺得我們的指南有用,請在您的社群網路上分享,支援 我們!

祝您好運!


via: https://www.ostechnix.com/auto-logout-inactive-users-period-time-linux/

作者:SK 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2018-01/150416.htm


IT145.com E-mail:sddin#qq.com