Por que o ping requer o bit setuid?

9

Na versão Jessie para o Raspberry Pi, pingrequer que o setuidbit seja definido. Qual é a justificativa para isso?

Velhote
fonte

Respostas:

15

o ping precisa gerar e receber pacotes ICMP, e geralmente isso é feito usando "soquetes brutos" - um recurso limitado ao root (cap_net_raw) porque também pode ser usado para detectar e atrapalhar outro tráfego no sistema.

Muitas distribuições agora oferecem apenas o privilégio cap_net_raw (consulte as páginas de manual capabilities(7)e getcap(8)manual) em vez da raiz setuid completa. No entanto, isso precisa do kernel e do sistema de arquivos para suportar atributos estendidos (xattrs), e alguns sistemas "mínimos" os desabilitam.

Além disso, recentemente foi adicionado um tipo de soquete "ICMP" especial que permite enviar apenas mensagens de eco ICMP, sem privilégios adicionais. O comando ping ainda não foi atualizado para ele.

user1686
fonte
Eu acho que os recursos (7) não usam xattrs.
Ggg #
2
@ggg: Mas faz. Tente getfattr --dump --match=.* /sbin/ping.
user1686