この簡単なチュートリアルでは、LinuxおよびUnixライクなシステムで、特定の期間後に非アクティブなユーザーを自動ログアウトする3つの異なる方法について説明します。
このシナリオを想像してください。ネットワーク内のすべてのシステムから多くのユーザーが定期的にアクセスしている共有サーバーを管理しています。
一部のユーザーがセッションからログアウトするのを忘れて、セッションを開いたままにしておく可能性があります。ユーザーセッションを開いたままにしておくことは危険であり、一部のユーザーは意図的にそれを誤用する可能性があります。
すべてのシステムを手動でチェックして、ユーザーがログアウトしたかどうかを確認しますか?それは必要ない!また、ネットワークに数百台のマシンがある場合は、非常に時間のかかる作業です。
代わりに、特定の非アクティブ期間の後に、ユーザーがローカルセッションまたはSSHセッションから自動ログアウトするようにすることができます。
Linuxで非アクティブなユーザーを自動ログアウト
非アクティブなユーザーセッションは、3つの方法で一定時間後に自動ログアウトできます。最初の方法を見てみましょう。
方法1:
~/.bashrc
を編集します または~/.bash_profile
ファイル:
$ nano ~/.bashrc
または、
$ nano ~/.bash_profile
最後に次の行を追加します:
TMOUT=100

Linuxでユーザータイムアウト値を構成する
これにより、ユーザーは100秒間非アクティブになった後に自動的にログアウトします。この値は、都合に合わせて定義できます。 ESC
を押します :wq
と入力します ファイルを保存して閉じます。
次のコマンドを実行して、変更を適用します。
$ source ~/.bashrc
または、
$ source ~/.bash_profile
ここで、セッションを100秒間アイドル状態のままにします。 100秒間操作がないと、次のメッセージが表示され、ユーザーはセッションから自動的にログアウトされます。
timed out waiting for input: auto-logout Connection to 192.168.122.181 closed.

Linuxで非アクティブなユーザーを自動ログアウトする
この設定は、ユーザーが簡単に変更できます。なぜなら、~/.bashrc
ファイルはユーザー自身が所有しています。
タイムアウト設定を変更または削除するには、上記で追加した行を削除し、次のコマンドを実行して変更を適用します。
$ source ~/.bashrc
または、次のコマンドを実行してこれを無効にすることもできます。
$ export TMOUT=0
または、
$ unset TMOUT
タイムアウト設定はユーザー所有の~/.bashrc
に保存されているため ファイル、s/彼は単に行を削除することによってそれを簡単にバイパスすることができます。ユーザーが設定を変更できないようにする場合は、2番目の方法に従ってください。
方法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秒後に正確に破棄されます。
これらの2つの方法は、ローカルセッションとリモートセッションの両方に適用できます。つまり、ローカルでログインしているユーザー、または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.122.181 closed by remote host. Connection to 192.168.122.181 closed.
今後、SSH経由でリモートシステムからこのシステムにアクセスするユーザーは、100秒間操作がないと、自動的にログアウトされます。