web-dev-qa-db-ja.com

アクティブなログインセッションのリストを取得するにはどうすればよいですか?

11月9日17:55:46 swi007 systemd-logind [927]:ユーザーswi007の新しいセッション27。

Ubuntuサーバーでアクティブなログインセッションのリストを表示し、サーバーで特定のセッションを閉じたいのですが。

10
zapoxkrishna

現在のセッションのリストを取得するためのいくつかの選択肢があります。

  • コマンド who -システム上のユーザーを表示します。

    $ who
    spas     pts/1        2017-11-05 21:43 (tmux(1597).%0)
    spas     pts/14       2017-11-09 13:02 (192.168.100.110)
    guest    tty2         2017-11-09 16:15 (:1)
    
  • コマンド w -現在マシンにいるユーザーに関する情報を表示します。

    $ w
     16:16:12 up 3 days, 18:33,  9 users,  load average: 4,33, 2,79, 2,44
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    spas     pts/1    tmux(1597).%0    нд21    3days  3days  3days tmux new-session -d -s my-tmux-session
    spas     pts/14   192.168.100.110  13:02    1.00s  0.29s  0.01s sshd: spas [priv]
    guest    tty2     :1               16:15    3days  1.27s  0.17s /sbin/upstart --user
    
  • コマンド lastlastb -最後にログインしたユーザーの(履歴)リストを表示します。 --until--sinceなどの分析オプションはほとんどありません。

  • コマンド users -現在のホストに現在ログインしているユーザーのユーザー名を出力します。使い方は本当に限られています:

    $ users
    guest spas spas
    

特定のセッションを強制終了するには、who -u(またはwho -a)を使用してプロセス番号を出力し、次にSudo kill -9 <session-process-number>を使用できます。

$ who -u
spas     pts/1        2017-11-05 21:43  old         1597 (tmux(1597).%0)
spas     pts/14       2017-11-09 13:02   .         31822 (192.168.100.110)
guest    tty2         2017-11-09 16:15  old         2225 (:1)

$ Sudo kill -9 2225   # this command will kill the third session from the above list

さらに、特定のユーザーのすべてのプロセスを強制終了できます( reference ):

Sudo pkill -9 -u <username>

こちらもご覧ください:

16
pa4080