多个用户通过 SSH 连接到同一个主机名(IP 地址)。“ps U“显示已连接的进程 ID。我可以以某种方式向他们发送消息吗?

多个用户通过 SSH 连接到同一个主机名(IP 地址)。“ps U“显示已连接的进程 ID。我可以以某种方式向他们发送消息吗?

问题说明了一切。情况:有多个 SSH 登录都使用同一个用户名登录。命令“ps U wvsd”显示如下内容:

PID TTY      STAT   TIME COMMAND
1990 ?        S      0:00 sshd: wvsd@notty
1991 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
3388 ?        S      0:00 sshd: wvsd@pts/0
3389 pts/0    Ss+    0:00 -ksh
5174 ?        S      0:00 sshd: wvsd@notty
5175 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
5186 ?        S      0:00 sshd: wvsd@pts/2
5187 pts/2    Ss+    0:00 -ksh
5678 ?        S      0:00 sshd: wvsd@notty
5679 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
7350 ?        S      0:00 sshd: wvsd@notty
7351 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
8602 ?        S      0:00 sshd: wvsd@notty
8603 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
8736 ?        S      0:00 sshd: wvsd@notty
8737 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
8748 ?        S      0:00 sshd: wvsd@pts/6
8749 pts/6    Ss+    0:00 -ksh
10459 ?        S      0:00 sshd: wvsd@notty
10460 ?        Ss     0:00 /usr/lib64/ssh/sftp-server
11151 ?        S      0:00 sshd: wvsd@pts/4
11152 pts/4    Ss     0:00 -ksh
11337 pts/4    R+     0:00 ps U wvsd

我知道“sshd: wvsd@notty”的 PID 是其他登录的用户。使用他们的 PID,我有什么办法可以向他们发送消息吗?

这是在 Linux SUSE 11 x64 上。

谢谢

答案1

您可以使用who来获取用户及其 TTY 列表,然后使用write向特定 TTY 发送消息:

% who -H
NAME     LINE         TIME         COMMENT
teun     pts/0        Dec  9 09:05 (my.hostname.tld)

% write teun pts/0
OHAI

并使用 Ctrl-D 结束消息。

答案2

太棒了,Teun!我之前都不知道!

您还可以使用 wall 命令向所有人发送消息:

wall <enter>
Hello everyone thats logged in!
<Ctrl-D>

每个登录的用户都会收到该消息。

相关内容