# getcap ./some_bin ./some_bin =ep
Diese Binärdatei hat von Anfang an ALLE erlaubten (p) und effektiven (e) Fähigkeiten.
In der Textdarstellung von Fähigkeiten ein führendes =
entspricht all=
.Vom cap_to_text(3)
Handbuchseite:
Für den Fall, dass der führende Operator =
ist , und keine Liste von Fähigkeiten bereitgestellt wird, wird angenommen, dass sich die Aktionsliste auf alle bezieht Fähigkeiten. Beispielsweise sind die folgenden drei Klauseln einander äquivalent (und geben einen vollständig leeren Capability-Satz an):all=
; =
;cap_chown,<every-other-capability>=
.
Eine solche Binärdatei kann tun, was sie will, begrenzt nur durch das Capability Bounding Set, das auf einem typischen Desktop-System alles enthält (ansonsten Setuid-Binärdateien wie su
würde nicht wie erwartet funktionieren).
Beachten Sie, dass dies nur ein "Erwischt" der textuellen Darstellung ist, die von libpcap
verwendet wird :im security.capability
erweitertes Attribut der Datei, für die getcap
wird /file/path =ep
ausgeben , alle sinnvollen Bits sind effektiv an; für ein leeres security.capability
, /file/path =
(mit dem =
nichts gefolgt) wird stattdessen gedruckt.
Falls jemand von all dem noch nicht überzeugt ist, hier ein kleines 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
Es ist keine Fähigkeit.
Es bedeutet effektives Set und erlaubtes Set.
Das bedeutet, dass die Fähigkeiten in den zulässigen Satz (p
), und alle zulässigen Fähigkeiten werden in den effektiven Satz kopiert (e
).
Die e
wird für Legacy-Programme verwendet (möglicherweise die meisten Programme zur Zeit), das heißt Programme, die keine Fähigkeiten kennen, also nicht selbst Fähigkeiten von erlaubt nach effektiv kopieren können.
Warum es eine leere Menge gibt (wie @mosvy darauf hingewiesen hat), haben die Autoren der Bibliothek alle mit keiner verwechselt (unendlich und null sind zwei der am meisten verwirrten Zahlen).