Linuxは1台のマシンを複数人が同時にログインして利用できることが利点ですが、
セキュリティの関係などで特定のユーザを強制的にログアウトさせたい場面があるかと思います。
その方法をパターンに分けてまとめてみました。
1. ログインしているユーザを確認
まずはログインしているユーザを確認します。
# w
20:49:38 up 1:40, 4 users, load average: 0.08, 0.15, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user01 :0 :0 20:46 ?xdm? 58.53s 0.07s gdm-session-worker [pam/gdm-password]
root pts/0 xxx.xxx.xxx.xxx 19:09 2.00s 0.75s 0.00s w
user01 pts/1 xxx.xxx.xxx.xxx 20:39 10:13 0.06s 0.06s -bash
user01 tty2 20:48 50.00s 0.06s 0.06s -bash
今回は、user01を強制ログアウトします。
user01は
- コンソールからGUI(GNOME)(:0)
- ssh経由(pts/1)
- コンソールからCUI(tty2)
でログインしています。
2. SSH経由でログオンしているユーザ
pts/1のプロセスを表示します。
# ps -ef | grep pts/1
user01 10093 10017 0 20:39 ? 00:00:00 sshd: user01@pts/1
user01 10099 10093 0 20:39 pts/1 00:00:00 -bash
「user01@pts/1」のプロセスをkillすることでログアウトさせることができます。
# kill -9 10093
3. コンソールからGUI(GNOME)でログオンしているユーザ
ユーザ指定ができないので、GNOMEでログインしているすべてのユーザが対象となります。(ちょっと残念)
# pkill gnome-session
4. コンソールからCUIでログインしているユーザ
tty2のプロセスを表示します。
# ps -ef | grep tty2
user01 12769 12588 0 21:30 tty2 00:00:00 -bash
「tty2」のプロセスをkillすることでログアウトさせることができます。
# kill -9 12769
5. 特定のユーザを接続方法に関わらずまとめて強制ログオフ
対象ユーザの全てのプロセスをkillします。
# killall -u user01
お疲れさまでした。