Developer's notes

Go to Blog

Recently I’d found that ping utility on Ubuntu 20.04 and Ubuntu 21.04 works without root permissions, suid flag, or CAP_NET_RAW capability. In the Kernel documentation it is said that ping uses ICMP_PROTO datagram sockets and it’s possible to allow users without root permissions to create such sockets:

ping_group_range - 2 INTEGERS

Restrict ICMP_PROTO datagram sockets to users in the group range. The default is “1 0”, meaning, that nobody (not even root) may create ping sockets. Setting it to “100 100” would grant permissions to the single group. “0 4294967295” would enable it for the world, “100 4294967295” would enable it for the users, but not daemons.

I’d checked /proc/sys/net/ipv4/ping_group_range and found 0 2147483647 interval.

Also, there is a code example that demonstrates the use of ICMP_PROTO sockets.