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

 

お疲れさまでした。

 

Joomla templates by a4joomla