Portál AbcLinuxu, 1. května 2025 02:55
ACL práva nastupují na scénu pokud potřebujete vyřešit práva, ale standardní metody pomocí vlastníka, skupiny a ostatních už na to nestačí. ACLka fungují téměř napříč politickým spektrem, takže jejich podpora je skoro ve všech (né-li ve všech) UNIXech resp. filesystémech.
Pomocí ACL práv se ke standardním právům přidají práva pro další uživatele nebo skupiny a také maska. Maska určuje maximální možná práva, která může dostat uživatel nebo skupina definovaná v ACL. Maska se nevztahuje na vlastníka. Změnou masky souboru můžete naráz všem definovaným ALC uživatelům a skupinám zatrhnout všechny přístupy.
Pomocí getfacl soubor vypíšete práva na soubor. Jak můžete vidět na příkladu, soubor jsem vytvořil pod uživatelem root, ostatní mají možnost pouze číst.
root@demo-141 # getfacl soubor # file: soubor # owner: root # group: other user::rw- group::r-- #effective:r-- mask:r-- other:r--Teď nastavím uživateli uzivatel práva pro čtení a zápis.
root@demo-141 # setfacl -m user:uzivatel:6 soubor root@demo-141 # getfacl soubor # file: soubor # owner: root # group: other user::rw- user:uzivatel:rw- #effective:r-- group::r-- #effective:r-- mask:r-- other:r--Nastavení proběhlo, ale efektivní práva jsou stále jen pro čtení a to z důvodu nastavené masky. Ponastavíme tedy masku na rw-.
root@demo-141 # setfacl -m m:6 soubor root@demo-141 # getfacl soubor # file: soubor # owner: root # group: other user::rw- user:uzivatel:rw- #effective:rw- group::r-- #effective:r-- mask:rw- other:r--Tak a teď je vidět, že efektivní práva jsou rw-, tj. je možný i zápis, a to vše bez toho, aby uzivatel soubor vlastnil, nebo měl přes svou skupinu práva na zápis.
Jak poznám, že je na souboru použito ACL?
Z dlouhé výpisu tj. příkaz ls -l.
root@demo-141 # ls -l -rw-r--r--+ 1 root other 19 Feb 23 20:34 souborKoncové + značí použití ACL práv.
Jak smazat nastavené ACL?
Použitím příkazu setfacl -d ACL_zaznam soubor
root@demo-141 # getfacl soubor ..... user:uzivatel:rw- #effective:rw- user:user:rw- #effective:rw- .....Takže uživatel s loginem user má aktuálně přidělená práva čtení a zápisu. Příkazem setfacl -d u:user soubor mu všechna přidělená práva odstraním a uživatel přestane existovat v ACL záznamu.
Nastavení všech práv najednou.
Pokud chcete nastavit práva souboru pomocí jednoho příkazu, je to možné...
root@demo-141 # setfacl -s user::r--,group::---,other:---,mask:rw-,user:uzivatel:rw- fileJe to trochu tasemnice, ale celkem jasná. Pozor na zdvojené dvojtečky. Výsledek:
root@demo-141 # getfacl file # file: file # owner: root # group: other user::r-- user:uzivatel:rw- #effective:rw- group::--- #effective:--- mask:rw- other:---Ke stejnému výsledku můžeme také dojít číselným nastavením práv.
setfacl -s user::4,group::0,other:0,mask:6,user:uzivatel:6 file
Přenesení práv z jednoho souboru na druhý:
Přečtená práva přes | přeneseme na vstup setfacl a nastavíme na soubor s názvem file.
root@demo-141 # getfacl soubor | setfacl -f - filePokud chcete práva nejdříve uložit do souboru a pak tento soubor zvolit jako zdroj, není problém. Nejdříve přesměrujeme do souboru nastavená práva:
getfacl soubor > soubor_pravA tyto pak aplikujeme na vybrané soubory:
root@demo-141 # setfacl -f soubor_prav soubor soubor1 soubor2
Závěr:
Na Solarisu plně funkční, u jiných systémů je možné, že bude nutné zapnout podporu ACL při mountování filesystemu. Pokud to neuděláte, soubory budou mít pouze práva, která mají standardně a také se tak budou chovat...
Tiskni
Sdílej:
Pokud ale pouzivate LFS ........tak je to taky naprosto v pohodě, protože jde o snadnou kompilaci, jako je každá druhá.
setfacl
přepínač -x
. Přepínač -d
se používá, pokud chcete u adresáře pracovat s default ACL místo normálního.
-x
není, ale u mého Debianu je...
star
ano.
ACL jsou buď uloženy přímo ve struktuře filesystému který s nimi počítá, nebo v "extended attributes" (to je případ většiny filesystémů na linuxu 2.6). Přesun v rámci filesystému není problém (to je koneckonců jen volání jádra). Kopírování problém je, pokud patřičný kopírovací program neumí s ACL pracovat (pro cp
existuje patch, už to v diskusi padlo).
Pokud se filesystém namountuje pod systémem který je nepodporuje (pokud to tedy vůbec jde, tedy vesměs o ext2/ext3/reiser), tak se při manipulaci se soubory (mv, cp) mohou ACL ztratit.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.