[[oktatas:linux|< Linux]]
====== Capability ======
* **Szerző:** Sallai András
* Copyright (c) 2011, Sallai András
* Szerkesztve: 2011, 2012, 2013
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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