ping precisa gerar e receber pacotes ICMP, e normalmente isso é feito usando "raw sockets" - um recurso limitado ao root (cap_net_raw), porque ele também pode ser usado para farejar e interromper outros tráfegos no sistema.
Muitas distribuições agora dão ping ao privilégio cap_net_raw (veja capabilities(7)
e getcap(8)
páginas de manual) em vez de root setuid completo. No entanto, isso precisa do kernel e do sistema de arquivos para suportar atributos estendidos (xattrs), e alguns sistemas "mínimos" os desativam.
Além disso, recentemente foi adicionado um tipo de soquete "ICMP" especial que permite enviar mensagens de eco ICMP apenas, sem privilégios adicionais . O comando ping ainda não foi atualizado para ele.