Richacls je implementace NFSv4 ACL, která byla rozšířena o souborové masky, aby více splňovala standardní POSIX model souborových práv.
Dnes nabízí komplexnější model oprávnění pro systém souborů ext4 v operačním systému Linux. Kvůli přesahu specifikace ACL v POSIXu není možné přejít zpět z Richacls bez ztráty informací. Hlavní výhodou je rozlišení mezi právy na zápis a přepsání a také mezi právy na smazání a smazání potomků. Používají se rozšířené atributy(xattrs) ext4 pro uložení ACL. Záznamy v ACL se nazývají ACE (Access Control List Entry).
Podpora v Linuxovém Kernelu V poslední verzi oficiálního linuxového kernelu není pro Richacls zabudována podpora. Pro zprovoznění je možné využít jednoho z následujících postupů: Aplikovat dodatečný patch kernelu a následně vlastní kernel zkompilovat. Patch je ke stažení na domovské stránce projektu. Použít linuxovou distribuci, která tento patch již obsahuje, například OpenSUSE verze 11.3 a vyšší.
Na ověření, zda váš systém má podporu pro Richacls, lze ve většině případů využít následujícího příkazu do konzole:
$ cat /boot/config-`uname -r` | grep RICHACL
Výstup by měl odpovídat: CONFIG_EXT4_FS_RICHACL=y CONFIG_FS_RICHACL=y
Aktivace Richacls Jakmile máte v systému podporu Richacls, můžete je aktivovat na určitých souborových systémech. Následující příklad ukazuje aktivaci na root filesystému.
$ mount -o remount,richacl /
Ověření příkazem do konzole: $ mount | grep " / " a výsledek odpovídající aktivovaným Richacls: /dev/sda1 on / type ext4 (rw,richacl)
Richacls mohou být také aktivovány permanentně přidáním parametru richacl do konkrétního záznamu v /etc/fstab.
Manipulace s ACL Nástroje pro manipulaci s Richacl Pro manipulaci s Richacl záznamy se využívá utility richacl, dostupné na domovské stránce projektu. Tímto nástrojem lze provádět většinu základních operací pro specifické soubory a složky, jako například: zobrazit ACL nastavit ACL změnit jednotlivá ACE odebrat ACL zobrazit aktuální oprávnění určitého uživatele nebo skupiny
Formát Richacl ACE Formát jednotlivých záznamů v ACL koresponduje s: <kdo>:<maska oprávnění>:< příznak>:<typ>.
Kde hodnota <kdo> může nabývat: ID uživatele nebo skupiny owner@ – vlastník group@ – skupina everyone@ – všichni Hodnoty se symbolem @ jsou použity pro definování oprávnění pro vlastníka, vlastnící skupinu a ostatní.
<maska oprávnění>, je nastavena 16 bity oprávnění (podle NFSv4 resp. NFSv4.1 specifikace), ale pět z nich není implementováno. Význam jednotlivých bitů je popsán v následující tabulce:
název bitu symbol popis READ_DATA r Čtení WRITE_DATA w Zápis APPEND_DATA a Write to a file in O_APPEND mode LIST_DIRECTORY r Zobrazení obsahu složky ADD_FILE a Vytvoření souboru ve složce ADD_SUBDIRECTORY a Vytvoření podsložky ve složce DELETE_CHILD d Smazání souboru nebo složky z podsložky EXECUTE x Spuštění souboru, Traverse a directory DELETE d Smazání souboru samotného, bez DELETE_CHILD nastaveného u rodiče READ_ATTRIBUTES T Načíst stat() informace objektu Vždy povolené WRITE_ATTRIBUTES t Nastavení atime/mtime objektu READ_ACL M Čtení ACL objektu Vždy povolené WRITE_ACL m Nastavení ACL a POSIX módu objektu WRITE_OWNER o Převzetí vlastníka objektu Nastavení vlastnící skupiny objektu na jedno z vašeho GID SYNCHRONIZE Uloženo, ale neinterpretováno. READ_NAMED_ATTRS WRITE_NAMED_ATTRS WRITE_RETENTION WRITE_RETENTION_HOLE
< příznak> může nabývat hodnot:
název příznaku symbol příznaku popis FILE_INHERIT_ACE f Nové soubory podědí tyto ACE DIRECTORY_INHERIT_ACE d Nové složky podědí tyto ACE NO_PROPAGATE_INHERIT_ACE n INHERIT_ONLY_ACE i IDENTIFIER_GROUP g Dané <kdo> ID je skupinou INHERITED_ACE a
Hodnoty <typ> jsou pouze ALLOW nebo DENY. NFSv4 specifikace používá také AUDIT a ALARM ACE typ, ty jsou akceptovány a uloženy, ale nejsou v Richacls implementovány.
DENY ACE má nejvyšší prioritu.
Příklad použití $ richacl --get /srv/files/exchange /srv/files/exchange: owner@:rwa-dtD------:fd:allow owner@:---x---------:d:allow powerusers:rwa----------:fdg:allow powerusers:---x---------:dg:allow storageadmins:rwa-dtDmo----:fdg:allow storageadmins:---x---------:dg:allow
Výše uvedený příklad definuje takovou politiku oprávnění, která povoluje všem uživatelům ze skupiny powerusers čtení, zápis a přepis souborů v /srv/files/exchange/ a podsložkách. Dále uživatelé ve skupině powerusers mohou mazat své soubory a adresáře (včetně jejich obsahu). Navíc uživatelé skupiny storageadmins smí manipulovat s daty libovolně. Mohou také modifikovat ACL. Ostatní uživatelé nemají do daného adresáře přístup vůbec.
Tento model je nerealizovatelný za použití POSIXových ACL a to i se sticky bitem, kvůli potřebné dědičnosti práv.
Reference
Kategorie:Počítačová bezpečnost Kategorie:Linux