< Linux

Capability

Szerző: Sallai András

Copyright © 2011, Sallai András

Szerkesztve: 2011, 2012, 2013

Licenc: CC BY-SA 4.0

Web: https://szit.hu

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

http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.2/capfaq-0.2.txt

http://www.symantec.com/connect/articles/introduction-linux-capabilities-and-acls

http://en.wikipedia.org/wiki/Capability-based_security

http://www.friedhoff.org/posixfilecaps.html

http://codex.wordpress.org/Roles_and_Capabilities