在Linux系統上,我們可以使用不同的方法來實現在一段時間不活動后自動登出用戶的功能。以下是三種實現方法的詳細步驟:
方法一:使用TMOUT環境變量
編輯用戶的配置文件,通常是 ~/.bashrc
或 ~/.bash_profile
,具體取決于用戶的shell環境。
在文件中添加以下行:
TMOUT=100
這會設置一個100秒的超時時間,用戶在停止操作后100秒將自動登出。你可以根據需要調整這個值。
保存并關閉文件后,運行以下命令使更改生效:
source ~/.bashrc
或
source ~/.bash_profile
現在,當用戶在100秒內沒有任何操作時,會看到類似下面的信息,并自動退出會話。
timed out waiting for input: auto-logout Connection to 192.168.13.2 closed.
注意:這種方法設置的超時時間可以被用戶輕易修改。因此,如果需要更嚴格的控制,可以考慮使用其他方法。
方法二:修改全局配置
以root用戶身份登錄系統。創建一個名為autologout.sh
的新文件,將其放置在/etc/profile.d/
目錄下。這個目錄用于存放對所有用戶都生效的配置腳本。
編輯該文件并添加以下內容:
TMOUT=100 readonly TMOUT export TMOUT
保存并退出文件后,為腳本添加執行權限:
chmod +x /etc/profile.d/autologout.sh
現在,登出或重啟系統后,非活動用戶將在100秒后自動登出。這種方法使得普通用戶無法修改超時設置,從而強制他們在一段時間后登出。
方法三:針對ssh會話進行設置
編輯ssh服務器的配置文件/etc/ssh/sshd_config
。在文件中找到或添加以下行:
ClientAliveInterval 100 ClientAliveCountMax 0
保存并退出文件后,重啟ssh服務以使更改生效:
systemctl restart sshd
現在,當遠程用戶通過ssh登錄系統并在100秒內沒有任何活動時,他們的會話將自動關閉,并顯示類似下面的消息:
# Connection to 192.168.13.2 closed by remote host. Connection to 192.168.13.2 closed.