Co je to ACL?
Seznam řízení přístupu (ACL) poskytuje další, flexibilnější mechanismus oprávnění pro souborové systémy. Je navržen tak, aby pomáhal s oprávněními souborů systému UNIX. ACL umožňuje udělit oprávnění libovolnému uživateli nebo skupině k libovolnému diskovému prostředku.
Použití ACL :
Představte si scénář, ve kterém určitý uživatel není členem vámi vytvořené skupiny, ale přesto chcete udělit nějaký přístup pro čtení nebo zápis, jak to můžete udělat, aniž byste uživatele učinili členem skupiny, zde přichází na řadu seznamy řízení přístupu, ACL nám pomáhá tento trik provést.
Zásadně se ACL používají k vytvoření flexibilního mechanismu oprávnění v Linuxu.
Z manuálových stránek Linuxu vyplývá, že ACL slouží k definování jemnějších diskrečních přístupových práv k souborům a adresářům.
setfacl a getfacl slouží k nastavení ACL, resp. zobrazení ACL.
Například :
getfacl test/declarations.h
Výstup:
# file: test/declarations.h# owner: mandeep# group: mandeepuser::rw-group::rw-other::r--
Seznam příkazů pro nastavení ACL :
1) To add permission for usersetfacl -m "u:user:permissions" /path/to/file2) To add permissions for a groupsetfacl -m "g:group:permissions" /path/to/file 3) To allow all files or directories to inherit ACL entries from the directory it is withinsetfacl -dm "entry" /path/to/dir4) To remove a specific entrysetfacl -x "entry" /path/to/file5) To remove all entriessetfacl -b path/to/file
Například :
setfacl -m u:mandeep:rwx test/declarations.h
Modifikace ACL pomocí setfacl :
Pro přidání oprávnění pro uživatele (uživatel je buď jméno uživatele, nebo ID):
# setfacl -m "u:user:permissions"
Pro přidání oprávnění pro skupinu (skupina je buď jméno skupiny, nebo ID):
# setfacl -m "g:group:permissions"
Pro povolení, aby všechny soubory nebo adresáře dědily položky ACL z adresáře, ve kterém se nacházejí:
# setfacl -dm "entry"
Příklad :
setfacl -m u:mandeep:r-x test/declarations.h
Viz níže uvedený obrázek pro výstup :
setfacl a getfacl
Zobrazení ACL :
Pro zobrazení oprávnění :
# getfacl filename
Sledujte rozdíl mezi výstupem příkazu getfacl před a po nastavení oprávnění ACL pomocí příkazu setfacl.
Pro uživatele mandeep je přidán jeden řádek navíc, který je zvýrazněn na obrázku výše.
Výstup:
změnit oprávnění
Výše uvedený příkaz změní oprávnění z rwx na r-x
Odstranit ACL :
Pokud chcete odstranit nastavená oprávnění ACL, použijte příkaz setfacl s parametrem -b.
Například :
odstranit nastavená oprávnění
Pokud porovnáte výstup příkazu getfacl před a po použití příkazu setfacl s volbou -b, můžete si všimnout, že v pozdějším výstupu není žádný konkrétní záznam pro uživatele mandeep.
Pomocí příkazu ls můžete také zkontrolovat, zda nejsou nastavena nějaká další oprávnění prostřednictvím ACL.
zkontrolujte nastavené acl pomocí ls
Podívejte se na první výstup příkazu na obrázku, za oprávněními je navíc znak „+“ jako -rw-rwxr-+, to znamená, že jsou nastavena další oprávnění ACL, která můžete zkontrolovat pomocí příkazu getfacl.
Použití výchozího ACL :
Výchozí ACL je specifický typ oprávnění přiřazený adresáři, který nemění oprávnění samotného adresáře, ale způsobuje, že zadaná ACL jsou nastavena jako výchozí pro všechny soubory vytvořené uvnitř adresáře. Ukážeme si to : nejprve vytvoříme adresář a přiřadíme mu výchozí ACL pomocí volby -d:
$ mkdir test && setfacl -d -m u:dummy:rw test