![如何将 wall 命令的消息限制到特定组?](https://linux22.com/image/207491/%E5%A6%82%E4%BD%95%E5%B0%86%20wall%20%E5%91%BD%E4%BB%A4%E7%9A%84%E6%B6%88%E6%81%AF%E9%99%90%E5%88%B6%E5%88%B0%E7%89%B9%E5%AE%9A%E7%BB%84%EF%BC%9F.png)
该命令的描述wall
表明它发送一条消息到全部已登录的用户。然而,手册页描述了一个标志 ,-g --group
它允许发送者将消息限制到指定的组:
-g, --group group
将消息打印限制为定义为组参数的组成员。参数可以是组名或 GID。
但是,我只能向所有登录用户发送消息。我已经尝试过这个命令:
-g my_group
,--group my_group
,-g "my_group"
,--group "my_group"
,--group=my_group
另外,我已经尝试了上述所有方法,将“my_group”(组名称)替换为组 ID,但没有成功。
我也尝试过放置标志后消息。这些都不能将消息限制在给定的组中。所有消息都会发送给所有用户。我是不是对国旗有什么误解?语法?这个命令坏了吗?或者手册页根本不正确?请不要提供替代命令,我知道它们的存在。我想知道如何使用列出的选项或为什么该选项无法正常工作。我在用Ubuntu 20.04
答案1
看着群组成员资格检查代码。打了一轮gdb --args wall -g root foobarbaz
,
break is_gr_member
run
{wait for breakpoint to be hit}
finish
print utmpptr->ut_user # this prints my own user name
step # this shows we're actually taking the branch as if I was a member of group root
所以,是的,这wall
似乎是检查组成员身份时的一个错误。请随时打开错误报告他们的错误跟踪器;然而,老实说,解决这个问题的压力应该很低!我怀疑这个功能有很多合法用户。自己修复这个问题可能仍然非常有价值,如果您有 C 技能,请这样做。