在 FreeBSD ping 的手册页中:
-s packetsize Specify the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data. Only the super-user may specify val- ues more than default. This option cannot be used with ping sweeps.
有人知道我如何让非超级用户发送大于 56 的 ping 吗?我可以增加默认大小,或者以某种方式允许非 root 用户使用 -s 吗?我知道这会带来安全隐患,因为这可能会允许用户发起 ping 泛滥,所以如果我可以将其限制为仅允许单个(无 shell)用户,那就更好了。
答案1
考虑使用 sudo,例如:
coryj ALL = NOPASSWD: /bin/ping
这应该让用户coryj
运行/bin/ping
(警告:使用他喜欢的任何参数,而不仅仅是-s
),无需密码。
请注意此行为的安全隐患;请参阅sudo(8)
和 的手册页sudoers(5)
。
答案2
您可以修改源代码并更改行为。您可以使默认大小更大,它位于98
的行ping.c
中。或者,您可以通过将行替换为 来/usr/src/sbin/ping/
禁用此功能。更改后,运行。446
if (0) {
make install
我很想知道为什么需要一个普通用户来发送大型 ICMP 消息。