"/usr/bin/ping" é mostrado como amarelo sobre vermelho no esquema de cores padrão do Fedora bash - o que isso significa?

"/usr/bin/ping" é mostrado como amarelo sobre vermelho no esquema de cores padrão do Fedora bash - o que isso significa?

Ao listar o diretório /usr/bin, vê-se que ping é mostrado em amarelo sobre vermelho:

ping mostrado amarelo sobre vermelho

O arquivo não possui recursos especiais:

$ file /usr/bin/ping
/usr/bin/ping: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for
GNU/Linux 2.6.32, BuildID[sha1]=2508ea2a85b70c68967b3e6345541430f5317d5f,
stripped

$ stat /usr/bin/ping
   File: '/usr/bin/ping'
   Size: 62096           Blocks: 136        IO Block: 4096   regular file
Device: 802h/2050d      Inode: 4457229     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:ping_exec_t:s0
Access: 2016-11-01 10:02:57.332925719 +0100
Modify: 2016-06-22 14:01:14.000000000 +0200
Change: 2016-07-10 23:41:59.623796126 +0200
Birth: -

De acordo comO que significam as diferentes cores no terminal?, onde podemos encontrar um script para listar as interpretações das cores, "amarelo sobre vermelho" significa "ca":

Cores vistas no esquema de cores bash padrão do Fedora

O que significa "ca"? Talvez isso signifique que este arquivo tenha um link físico de outro lugar ( /usr/bin/pinge /usr/pingseja o mesmo arquivo)

PS A pergunta ocorreu enquanto assistiaExplicando a VACA Suja, onde o pingcomando no Ubuntu é mostrado como setuid root, o que parece estranho:

ping raiz setuid

Responder1

Isso indica que pingpossui recursos extras:

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

ou mesmo (no Fedora até 30):

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

Isso permite pingabrir um soquete bruto (e enviar e receber pacotes ICMP) sem executar como root.setcap(8)ecapabilities(7)dê mais detalhes.

Historicamente, pingo setuid foi instalado para que pudesse rodar roote poder usar soquetes brutos; assim que os recursos se tornaram utilizáveis, muitas distribuições passaram a usá-los, já que o controle mais refinado que eles oferecem sobre as permissões parece preferível. Porém, no Ubuntu,aparentemente há problemas com o instalador, então pingainda está instalado o setuid root(o código de recursos está desabilitado emo script do mantenedor relevante, que vem do Debian onde pingestá configuradousando recursosse possível).

A pingpágina de manualdescreve seus requisitospor isso:

pingrequer CAP_NET_RAWcapacidade para ser executado 1) se o programa for usado para consultas sem eco (ver -Nopção), ou 2) se o kernel não suportar soquetes ICMP não brutos, ou 3) se o usuário não tiver permissão para criar um eco ICMP soquete. O programa pode ser usado como set-uid root.

Kernels 2.6.39 e posteriores fornecemoutro mecanismo para permitir que programas enviem e recebam mensagens de eco ICMP:net.ipv4.ping_group_range. Isto é usado no Fedora 31 e posteriores para permitir pingtrabalhar sem recursos extras (notavelmente, dentro de contêineres sem root); verComo o ping funciona no Fedora sem setuid e recursos?para detalhes.

informação relacionada