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.
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á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). |
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
man setcap man capabilities