# getcap ./some_bin ./some_bin =ep
Tento binární soubor má VŠECHNY povolené schopnosti (p) a účinné (e) od začátku.
V textové reprezentaci schopností je hlavní =
je ekvivalentní all=
.Z cap_to_text(3)
manuálová stránka:
V případě, že vedoucí operátor je
=
a není uveden žádný seznam schopností, předpokládá se, že seznam akcí odkazuje na vše schopnosti. Například následující tři klauzule jsou si navzájem ekvivalentní (a označují zcela prázdnou sadu schopností):all=
;=
;cap_chown,<every-other-capability>=
.
Takový binární soubor si může dělat, co chce, omezený pouze sadou omezení schopností, která na typickém desktopovém systému zahrnuje vše (jinak setuid binární soubory jako su
nebude fungovat podle očekávání).
Všimněte si, že se jedná pouze o "gotcha" textové reprezentace používané libpcap
:v security.capability
rozšířený atribut souboru, pro který je getcap
vytiskne /file/path =ep
, všechny smysluplné bity jsou efektivně zapnuty; za prázdné security.capability
, /file/path =
(s =
místo toho bude vytištěno.
Pokud o tom všem stále není někdo přesvědčen, zde je malý experiment:
# 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
Není to schopnost.
Znamená to efektivní sada a povolená sada.
Znamená to, že schopnosti budou umístěny v povolené sadě (p
) a všechny povolené funkce budou zkopírovány do platné sady (e
).
e
se používá pro starší programy (možná většina programů v současné době), což jsou programy, které neznají schopnosti, takže samy nemohou kopírovat schopnosti z povolených na efektivní.
Pokud jde o to, proč existuje to, co vypadá a prázdná množina (jak poznamenal @mosvy), autoři knihovny si spletli vše s žádným (nekonečno a nula jsou dvě z nejvíce zmatených čísel).