![为什么我无法使用 wall 命令发送消息?](https://linux22.com/image/95617/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20wall%20%E5%91%BD%E4%BB%A4%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%EF%BC%9F.png)
我正在尝试使用 wall 或 write 发送消息。为了测试这一点,我打开了两个 gnome 终端窗口。然后在一个窗口中输入以下内容:
me@host>>wall
message to everyone
<ctrl> + d
当我完成消息后,我使用(ctrl-d)发送了一个中断信号EOF 字符。终端没有发送消息,而是向我发出蜂鸣声,就好像我输入了无效的输入一样。我在 write 中得到了类似的行为。有人可以帮助我解决问题吗?
编辑:这是权限信息:
me@host>>ls -l $(type -p wall)
-rwxr-sr-x 1 root tty 27368 May 26 18:31 /usr/bin/wall
答案1
wall
和write
在 Debian(和 Ubuntu)上都使用 setgid (设置组 ID) 的特权tty
组以允许这些程序写入其他用户的终端。
然而,共享计算机系统的管理员通常会禁用此功能。您可以通过执行以下操作来查看权限
ls -lL /usr/bin/write /usr/bin/wall
在正常的系统上会看到这个(日期并不重要):
$ ls -lL /usr/bin/write /usr/bin/wall
-rwxr-sr-x 1 root tty 23056 Dec 11 2012 /usr/bin/wall
-rwxr-sr-x 1 root tty 14624 Jun 11 2012 /usr/bin/write
这s
在第一个字段中-rwxr-sr-x
是setgid位,第四个字段是组tty
。您需要两者(或等效的组)才能使该功能发挥作用。
除了权限之外,使用 gnome-terminal 还会遇到另一个方面:wall
并将write
消息发送到登录用户。他们从 utmp 数据文件中获取该信息,而 gnome-terminal 不支持该文件。
进一步阅读: