发布于 2020-06-14 23:28:53
我想https://fedoraproject.org/wiki/Changes/EnableSysctlPingGroupRange回答了你的问题:
启用Linux内核的net.ipv4.ping_group_range参数来覆盖所有组。这将允许操作系统上的所有用户创建ICMP套接字,而无需使用setuid二进制文件,也不需要具有CAP_NET_ADMIN和CAP_NET_RAW文件功能。
相互参照的细节
sysctl文档写道,
ping_ group _ range -2个整数将
ICMP_PROTO数据报套接字限制为组范围内的用户。默认的是"1 0",意思是没有人(甚至不是根)可以创建ping套接字。将其设置为"100 100“将授予单个组的权限。"0 4294967295“将为世界启用它,"100 4294967295”将为用户启用它,而不是守护进程。
一个旧的代码示例演示了这个特性的使用,特别是展示了使用IPPROTO_ICMP标志创建一个套接字,以确定它将用于原始ICMP。
int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP)发布于 2020-06-14 23:28:44
在软呢帽31中,内核参数net.ipv4.ping_group_range被设置为覆盖所有组。
这将允许操作系统上的所有用户创建ICMP Echo套接字,而无需使用setuid二进制文件,也不需要具有CAP_NET_ADMIN和CAP_NET_RAW文件功能。
sysctl net.ipv4.ping_group_range
net.ipv4.ping_group_range = 0 2147483647https://unix.stackexchange.com/questions/592911
复制相似问题