"/usr/bin/ping" se muestra como amarillo sobre rojo en el esquema de color predeterminado de Fedora bash. ¿Qué significa?

"/usr/bin/ping" se muestra como amarillo sobre rojo en el esquema de color predeterminado de Fedora bash. ¿Qué significa?

Al enumerar el directorio /usr/bin, se ve que ping se muestra en amarillo sobre rojo:

ping se muestra en amarillo sobre rojo

El archivo no tiene características especiales:

$ 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 acuerdo a¿Qué significan los diferentes colores en el terminal?, donde podemos encontrar un script para enumerar las interpretaciones de colores, "amarillo sobre rojo" significa "ca":

Colores vistos en el esquema de coloración bash predeterminado de Fedora

¿Qué significa "ca"? Tal vez signifique que este archivo está vinculado desde otro lugar ( /usr/bin/pingy /usr/pinges el mismo archivo)

PD: La pregunta surgió mientras miraba.Explicando la VACA sucia, donde el pingcomando en Ubuntu se muestra como setuid root, lo que suena extraño:

ping de raíz setuid

Respuesta1

Esto indica que pingtiene capacidades extra:

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

o incluso (en Fedora hasta 30):

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

Esto permite pingabrir un socket sin formato (y enviar y recibir paquetes ICMP) sin ejecutarlo como root.setcap(8)ycapabilities(7)dar más detalles.

Históricamente, pingse instaló setuid para que se ejecutara rooty pudiera usar sockets sin formato; Una vez que las capacidades se volvieron utilizables, muchas distribuciones pasaron a usarlas, ya que parece preferible el control más detallado que ofrecen sobre los permisos. Sin embargo, en Ubuntu,aparentemente hay problemas con el instalador, por lo que pingtodavía está instalado setuid root(el código de capacidades está deshabilitado enel script de mantenimiento relevante, que viene de Debian donde pingestá configuradousando capacidadessi es posible).

La pingpágina de manualdescribe sus requisitosde este modo:

pingrequiere CAP_NET_RAWcapacidad para ejecutarse 1) si el programa se utiliza para consultas sin eco (ver -Nopción), o 2) si el kernel no admite sockets ICMP sin formato, o 3) si el usuario no tiene permiso para crear un eco ICMP enchufe. El programa se puede utilizar como root set-uid.

Los kernels 2.6.39 y posteriores proporcionanOtro mecanismo para permitir que los programas envíen y reciban mensajes de eco ICMP.:net.ipv4.ping_group_range. Esto se utiliza en Fedora 31 y posteriores para permitir pingtrabajar sin capacidades adicionales (en particular, dentro de contenedores sin raíz); ver¿Cómo funciona el ping en Fedora sin setuid ni capacidades?para detalles.

información relacionada