“/ usr / bin / ping” é mostrado como amarelo-a-vermelho no esquema de cores padrão do Fedora - o que isso significa?

31

Ao listar o diretório /usr/bin , vemos que ping é mostrado como amarelo sobre vermelho:

Oarquivonãopossuirecursosespeciais:

$file/usr/bin/ping/usr/bin/ping:ELF64-bitLSBsharedobject,x86-64,version1(SYSV),dynamicallylinked,interpreter/lib64/ld-linux-x86-64.so.2,forGNU/Linux2.6.32,BuildID[sha1]=2508ea2a85b70c68967b3e6345541430f5317d5f,stripped$stat/usr/bin/pingFile:'/usr/bin/ping'Size:62096Blocks:136IOBlock:4096regularfileDevice:802h/2050dInode:4457229Links:1Access:(0755/-rwxr-xr-x)Uid:(0/root)Gid:(0/root)Context:system_u:object_r:ping_exec_t:s0Access:2016-11-0110:02:57.332925719+0100Modify:2016-06-2214:01:14.000000000+0200Change:2016-07-1023:41:59.623796126+0200Birth:-

Deacordocom O que significam as diferentes cores no terminal? ? , onde podemos encontrar um script para listar interpretações de cores, "amarelo-a-vermelho" significa "ca":

Oquesignifica"ca"? Talvez isso signifique que esse arquivo está com hardlink de outro lugar ( /usr/bin/ping e /usr/ping são o mesmo arquivo)

P.S. A questão ocorreu enquanto assistia Explaining Dirty COW , onde o comando ping no Ubuntu é mostrado como setuid root, que soa estranho:

    
por David Tonhofer 01.11.2016 / 13:28

1 resposta

50

Isso indica que ping tem recursos extras:

$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep

ou até mesmo (no Fedora):

$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_admin,cap_net_raw+ep

Isso permite que ping abra um soquete bruto (e envie e receba pacotes ICMP) sem executar como root .

setcap(8) e capabilities(7) forneça mais detalhes.

Historicamente, ping foi instalado como setuid para que fosse executado como root e pudesse usar soquetes brutos; uma vez que os recursos se tornaram utilizáveis, muitas distribuições passaram a utilizá-los, já que o controle mais refinado que eles oferecem sobre permissões parece preferível. No Ubuntu, porém, existem problemas aparentemente com o instalador , então ping ainda está instalado setuid root (o código de recursos está desativado em o script de mantenedor relevante , que vem do Debian, onde ping está configurado usando recursos se possível).

A ping manpage descreve seus requisitos , portanto:

ping requires CAP_NET_RAW capability to be executed 1) if the program is used for non-echo queries (See -N option), or 2) if kernel does not support non-raw ICMP sockets, or 3) if the user is not allowed to create an ICMP echo socket. The program may be used as set-uid root.

    
por 01.11.2016 / 13:50

Tags