Tartalomjegyzék

< Linux

Capability

Bevezetés

A capability szabályozza az objektumokhoz való hozzáférést a folyamatok számára.

A capability [UK: ˌkeɪpəˈbɪlɪti] jelentése adottság, képesség.

Szükséges csomag, körülmények

apt-get install libcap2-bin

Szükség van megfelelő kerneltámogatásra. A Debian GNU/Linux 6.x és 7.x alapértelmezetten támogatja, de nézzünk utána. A kernel beállításai a Debian GNU/Linux a /boot könyvtárban tárolja:

grep '\(XATTR\|CAPA\)' /boot/config-`uname -r`

Az eredmény:

CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_CIFS_FS_XATTR=y
CONFIG_SECURITY_FILE_CAPABILITIES=y

Adottságok, képességek

Adottság neve Jelentés
CAP_AUDIT_CONTROL A kernel auditálásának engedélyezése, tiltása
CAP_AUDIT_WRITE Rekordok írása a kernel auditálónaplójába
CAP_CHOWN Engedélyezi a fájl tulajdonosának cseréjét
CAP_DAC_OVERRIDE Minden DAC hozzáférés felülírása
CAP_DAC_READ_SEARCH Minden olvasás és keresés DAC jog felülírása
CAP_FOWNER Jogok automatikus megadása uid és gid alapján
kivéve azokat műveletek amelyek CAP_DAC_OVERRIDE
és CAP_DAC_READ_SEARCH hatálya alá esnek
fájlkiterjesztések beállíthatók (chattr) ACL-el beállíthatók
fájltörléskor a sticky bit figyelmen kiívülhagyása
Fájlkiterjesztéseken O_NOATIME beállítása open(2) és fcntl(2) közben
CAP_KILL Jelzések küldésének megengedése a folyamatok tulajdonosának és másoknak
CAP_LINUX_IMMUTABLE A nem változtatható és csak hozzáfűzésre megnyitható
fájlok módosításának engedélyezése
CAP_NET_BIND_SERVICE Porthoz kapcsolódás engedélyezése 1024 alatt
CAP_NET_RAW Raw socket használatának engedélyezése
CAP_SETGID A GID cseréjének megengedése
CAP_SETUID Az UID cseréjének megengedése
CAP_SETPCAP Minden aktuális PID másolásának és törlésének engedélyezése
CAP_NET_ADMIN Különböző hálózati tevékenységek engedélyezése
Például: kiemelt socket tulajdonságok,
multicast engedélyezése,
hálózati kártya konfigurálása,
a routing tábla változtatása).

Használat

setcap cap_net_admin=ep /bin/ping

Ellenőrizzük. Próbáljunk meg saját hálózatunkat pingetni. Például:

ping 192.168.5.1

Ellenőrizzük a beállításokat:

getcap /bin/ping
/bin/ping = cap_net_admin+ep

A beállítások törlése:

setcap -r /bin/ping

Irodalom

Kézikönyvek

man setcap
man capabilities

Linkek