# getcap ./some_bin ./some_bin =ep
Ese binario tiene TODAS las capacidades permitidas (p) y efectivas (e) desde el principio.
En la representación textual de capacidades, un =
inicial es equivalente a all=
.Desde el cap_to_text(3)
página de manual:
En el caso de que el operador principal sea =
, y no se proporciona una lista de capacidades, se asume que la lista de acciones se refiere a todos capacidades. Por ejemplo, las siguientes tres cláusulas son equivalentes entre sí (e indican un conjunto de capacidades completamente vacío):all=
; =
;cap_chown,<every-other-capability>=
.
Tal binario puede hacer lo que quiera, limitado solo por el conjunto de límites de capacidad, que en un sistema de escritorio típico incluye todo (de lo contrario, binarios setuid como su
no funcionaría como se esperaba).
Tenga en cuenta que esto es solo un "te pillé" de la representación textual utilizada por libpcap
:en el security.capability
atributo extendido del archivo para el cual getcap
imprimirá /file/path =ep
, todos los bits significativos están efectivamente on; por un vacío security.capability
, /file/path =
(con el =
seguido de nada) se imprimirá en su lugar.
Si alguien todavía no está convencido de todo eso, aquí hay un pequeño experimento:
# cp /bin/ping /tmp/ping # will wipe setuid bits and extented attributes
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted
# setcap =ep /tmp/ping
# su user -c '/tmp/ping localhost' # will work because of cap_net_raw
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
^C
# setcap = /tmp/ping
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted
No es una capacidad.
Significa conjunto efectivo y conjunto permitido.
Significa que las capacidades se colocarán en el conjunto permitido (p
), y todas las capacidades permitidas se copiarán en el conjunto efectivo (e
).
El e
se usa para programas heredados (posiblemente la mayoría de los programas en el momento actual), es decir, programas que no conocen las capacidades, por lo que no pueden copiar capacidades de permitido a efectivo.
En cuanto a por qué hay lo que parece y un conjunto vacío (como ha señalado @mosvy), los autores de la biblioteca han confundido todo con ninguno (el infinito y el cero son dos de los números más confusos).