如何获取活动登录会话的列表?

zap*_*hna 29 server session command-line login

11 月 9 日 17:55:46 swi007 systemd-logind[927]:用户 swi007 的新会话 27。

我想查看 ubuntu 服务器中的活动登录会话列表,并想关闭我服务器中的特定会话。

pa4*_*080 51

以下是获取当前会话列表的几种替代方法:

  • 命令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)
    
    Run Code Online (Sandbox Code Playgroud)
  • 命令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
    
    Run Code Online (Sandbox Code Playgroud)
  • 命令last lastb- 显示最后登录用户的(历史)列表。它提供了一些分析选项--until--since等等。

  • 命令users- 打印当前登录到当前主机的用户的用户名。它的使用非常有限:

    $ users
    guest spas spas
    
    Run Code Online (Sandbox Code Playgroud)

要终止特定会话,您可以使用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
Run Code Online (Sandbox Code Playgroud)

此外,您可以终止特定用户的所有进程(参考):

sudo pkill -9 -u <username>
Run Code Online (Sandbox Code Playgroud)

也可以看看: