如何判断用户是否连接ssh

如何判断用户是否连接ssh

我想看看有多少用户连接到一台电脑,看看当我这样做时谁会看到该消息,例如:

echo hello users! | wall

答案1

使用who命令。它列出了所有登录的用户。

它不仅仅是 SSH 用户,它还会列出控制台和直连终端上的用户(如果有的话)。对于 SSH 用户,它将显示他们的连接位置。

答案2

你想运行:

who -T | tr -s ' ' | cut -d ' ' -f 1-2 | sort -u

解释:

  • who -T显示所有用户及其可写状态('+' -> 你可以向他们写信息)
  • tr -s ' 'who折叠 的输出中的多个空格
  • cut -d ' ' -f 1-2只取前两个字段(用户名+可写状态)
  • sort -u对列表进行排序并仅显示唯一出现的情况(以防某人多次登录,就像控制台用户经常出现的情况)

这会给你类似的东西:

anthon +
avanderneut +
franzi -
rae +

答案3

who命令将为您提供登录用户的简单信息(用户、伪终端、会话开始日期、主机 IP)。

user    pts/0    2014-10-30 16:00:00 (1.1.1.1)

w命令将为您提供更详细的用户信息。

USER     TTY      FROM     LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    1.1.1.1  16:17    0.00s  0.30s  0.02s sshd: user [priv]

相关内容