GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlení seznamů řízení přístupu v systému Linux

Tento výukový program podrobně popisuje seznamy řízení přístupu v systému Linux, k čemu se používají a jak je spravovat.

Jako správce systému pravděpodobně trávíte dost času konfigurací oprávnění pro uživatele a skupiny ve vašem systému.

Oprávnění k souborům jsou již docela užitečná, aby bylo možné udělit oprávnění ke čtení, zápisu nebo spouštění adresářům nebo souborům.

Co když ale potřebujeme přesnější způsob udělování oprávnění složkám nebo souborům?

Co když chci udělit přístup k souboru konkrétnímu uživateli nebo konkrétní skupině, která není aktuálním vlastníkem souboru?

Přesně to jeseznamy řízení přístupu, také zkrácené ACL , řešíte na systému Linux.

V dnešním tutoriálu se velmi podrobně podíváme na seznamy řízení přístupu, co to jsou a jak se používají, abychom správně nakonfigurovali systém Linux.

Jste připraveni?

Co se naučíte

Pokud budete postupovat podle tohoto návodu až do konce, dozvíte se o následujících předmětech:

  • Jaké seznamy řízení přístupu are a jak je lze číst z příkazu ls;
  • Jak nastavit základní oprávnění k souboru pomocí setfacl příkaz:
  • Jak číst seznamy řízení přístupu pomocí getfacl příkaz;
  • Co je maska ​​seznamu řízení přístupu a jak by se to mělo číst;
  • Jaké výchozí nastavení seznamu řízení přístupu jsou a jak je lze efektivně využít

To je poměrně dlouhý program, takže bez dalších okolků začněme rychlou definicí toho, co jsou seznamy řízení přístupu.

Základy seznamů řízení přístupu v systému Linux

V systému Linux existují dva způsoby, jak nastavit oprávnění pro uživatele a skupiny:pomocí běžných oprávnění k souborům nebo pomocí seznamů řízení přístupu.

Definice seznamu řízení přístupu

Seznamy řízení přístupu se používají v souborových systémech Linux k nastavení vlastních a více přizpůsobených oprávnění k souborům a složkám. ACL umožňují vlastníkům souborů nebo privilegovaným uživatelům udělovat práva konkrétním uživatelům nebo konkrétním skupinám.

V Linuxu, jak asi víte, jsou oprávnění rozdělena do tří kategorií:jedna pro vlastníka souboru, jedna pro skupinu a jedna pro ostatní.

V některých případech však můžete chtít udělit přístup k adresáři (například oprávnění ke spuštění) určitému uživateli, aniž byste museli tohoto uživatele zařadit do skupiny souboru.

To je přesně důvod, proč byly na prvním místě vynalezeny seznamy řízení přístupu.

Výpis seznamu řízení přístupu

V Linuxu nejsou seznamy řízení přístupu povoleny, když vytváříte nový soubor nebo adresář na vašem hostiteli (kromě případů, kdy má nadřazený adresář předdefinované některé ACL).

Chcete-li zjistit, zda jsou pro soubor nebo adresář definovány seznamy řízení přístupu, spusťte příkaz ls a vyhledejte „+ znak ” na konci řádku oprávnění.

$ ls -l

Abychom ukázali rozdíl, zde je rozdíl při výpisu souborů na minimální instanci.

Nyní, když máte nějaké základy o seznamech řízení přístupu, pojďme se podívat, jak můžete začít vytvářet základní ACL pro vaše soubory a adresáře.

Vytváření seznamů řízení přístupu v systému Linux

Než začnete s příkazy ACL, je důležité mít balíčky nainstalované na vašem hostiteli.

Kontrola instalace balíčků ACL

Nemusí tomu tak být, pokud se rozhodnete mít spuštěný minimální server.

Začněte kontrolou nápovědy související s setfacl spuštěním následujícího příkazu

$ setfacl --help

Pokud váš hostitel nemůže najít příkaz setfacl, ujistěte se, že jste nainstalovali potřebné balíčky pro správu ACL.

$ sudo apt-get install acl -y

Pamatujte, že ke spuštění tohoto příkazu budete potřebovat sudo oprávnění na Debianu 10.

Spusťte příkaz setfacl a ujistěte se, že tentokrát vidíte příkazy nápovědy.

Nyní, když je váš hostitel správně nakonfigurován, podívejme se, jak funguje příkaz setfacl.

Nastavení seznamů řízení přístupu pomocí setfacl

U seznamů řízení přístupu jsou dva hlavní příkazy, které si musíte zapamatovat:setfacl a getfacl.

V této kapitole se podíváme na setfacl příkaz jako getfacl je docela samozřejmý.

Příkaz setfacl se v systému Linux používá k vytváření, úpravě a odstraňování seznamů řízení přístupu k souboru nebo adresáři.

Setfacl má následující syntaxi

$ setfacl {-m, -x}  {u, g}:<name>:[r, w, x] <file, directory>

Kde složené závorky znamenají jednu z následujících možností a běžné závorky znamenají jednu nebo několik položek.

  • -m :znamená, že chcete upravit jeden nebo několik záznamů ACL v souboru nebo adresáři.
  • -x :znamená, že chcete odstranit jeden nebo několik záznamů ACL v souboru nebo adresáři.
  • {u, g} :pokud chcete upravit ACL pro uživatele nebo pro skupinu.
  • jméno :toto je volitelný parametr, lze jej vynechat, pokud chcete nastavit položky ACL pro každého uživatele nebo pro každou skupinu na vašem hostiteli.
  • [r, w, x] :za účelem nastavení oprávnění ke čtení, zápisu nebo spouštění souboru nebo adresáře.

Chcete-li například nastavit konkrétní oprávnění k zápisu pro uživatele do souboru, napsali byste následující příkaz

$ setfacl -m u:user:w <file, directory>

Chcete-li nastavit oprávnění ke spuštění pro všechny uživatele na vašem hostiteli, napsali byste následující příkaz

$ setfacl -m u::x <file, directory>

Chcete-li nastavit plná oprávnění pro konkrétní skupinu na vašem hostiteli, zapsali byste setfacl tímto způsobem

$ setfacl -m g:group:rwx <file, directory>

Nyní řekněme, že chcete odstranit položku ACL ze souboru.

Chcete-li ze souboru odstranit položku specifickou pro uživatele, zadali byste možnost x.

Poznámka:nemůžete určit práva z jednoho záznamu ACL, což znamená, že nemůžete odebrat oprávnění k zápisu a nechat ACL oprávnění ke čtení aktivní.

$ setfacl -x u:<user> <file, directory>

Podobně pro odstranění ACL související se skupinami na vašem hostiteli byste napsali následující příkaz

$ setfacl -x g:<group> <file, directory>

Nyní, když jste viděli, jak můžete snadno vytvářet seznamy řízení přístupu v systému Linux, je čas podívat se, jak můžete zkontrolovat stávající seznamy řízení přístupu k souborům a adresářům.

Výpis seznamů řízení přístupu pomocí getfacl

Příkaz getfacl se v systému Linux používá k vytištění úplného seznamu všech běžných oprávnění a seznamů oprávnění pro řízení přístupu k souboru nebo adresáři.

Getfacl lze použít s následující syntaxí

$ getfacl <file, directory>

Příkaz getfacl je rozdělen do několika kategorií:

  • Název souboru, vlastník a skupina :informace o vlastnictví uživatele a skupiny se zobrazí nahoře;
  • Uživatelská oprávnění:nejprve byste našli běžná uživatelská oprávnění, nazývaná také vlastnící uživatel, následovaná libovolnými uživatelskými položkami ACL (tzv. pojmenovaní uživatelé)
  • Skupinová oprávnění :vlastnící skupiny jsou prezentovány a následují položky ACL specifické pro skupinu, nazývané také pojmenované skupiny
  • Maska :to omezuje oprávnění udělená záznamům ACL, maska ​​bude podrobně popsána v další sekci;
  • Další oprávnění :tato oprávnění jsou vždy aktivní a toto je poslední zkoumaná kategorie, pokud žádná jiná oprávnění neodpovídají aktuálnímu uživateli nebo skupině.

Práce s maskou přístupových seznamů

Jak jste pravděpodobně viděli z posledního snímku obrazovky, mezi pojmenovanými skupinami a ostatními oprávněními je položka masky.

Ale k čemu se tato maska ​​používá?

Maska ACL se liší od masky pro vytvoření souboru (umask) a používá se k omezení existujících položek ACL existujících v souboru nebo adresáři.

Maska ACL se používá jako maximální sada oprávnění ACL bez ohledu na existující oprávnění, která překračují masku ACL.

Jako vždy, diagram řekne sto slov.

Maska ACL se aktualizuje pokaždé, když spustíte příkaz setfacl, pokud nezadáte, že nechcete masku aktualizovat pomocí parametru -n.

Chcete-li zabránit aktualizaci masky, spusťte setfacl pomocí následujícího příkazu

$ setfacl -n -m u:antoine:rwx <file, directory>

Jak můžete vidět v tomto příkladu, nastavil jsem uživateli „antoine“ plná oprávnění k souboru.

Maska je nastavena tak, aby omezovala oprávnění ke čtení a zápisu.

V důsledku toho jsou „účinná oprávnění“ nastavená u tohoto souboru pro tohoto uživatele oprávnění ke čtení a zápisu, oprávnění ke spuštění není uděleno.

Poznámka:Pokud se vaše maximální sada oprávnění liší od položky masky, zobrazí se vám efektivní řádek počítající „skutečnou“ sadu použitých položek ACL.

Vytvoření výchozích seznamů řízení přístupu pro adresáře

Jak již bylo zmíněno v tomto článku, je možné vytvářet položky ACL v adresářích a fungují stejným způsobem, jakým fungují seznamy řízení přístupu k souborům.

Existuje však malý rozdíl, pokud jde o adresáře:musíte mít možnost vytvořit výchozí seznamy řízení přístupu.

Výchozí nastavení seznamů řízení přístupu se používají k vytváření záznamů ACL v adresáři, které budou zděděny objekty v tomto adresáři, jako jsou soubory nebo podadresáře.

Při vytváření výchozích položek ACL:

  • Soubory vytvořené v tomto adresáři dědí záznamy ACL zadané v nadřazeném adresáři
  • Podadresáře vytvořené v tomto adresáři dědí položky ACL stejně jako výchozí položky ACL z nadřazeného adresáře.

Chcete-li vytvořit výchozí položky ACL, zadejte volbu -d při nastavování ACL pomocí příkazu setfacl.

$ setfacl -d -m {u, g}:<name>:[r, w, x] <directory>

Chcete-li například přiřadit oprávnění ke čtení všem souborům vytvořeným v adresáři, spustili byste následující příkaz

$ setfacl -d -m u::r directory

Nyní, když je soubor vytvořen v tomto adresáři acl, můžete vidět, že na soubor jsou použity výchozí položky ACL.

Podobně, když je adresář vytvořen v adresáři acl, zdědí výchozí položky ACL specifikované v nadřazeném adresáři.

Upozorňujeme, že se doporučuje zadat výchozí oprávnění pro všechny tři kategorie (uživatel, skupina a další).

Ve skutečnosti zadáním jedné ze tří položek vytvoříte zbývající dvě s oprávněními souvisejícími s maskou vytváření souboru.

Odstranění výchozích seznamů řízení přístupu v adresářích

Chcete-li odstranit výchozí existující seznamy řízení přístupu v adresářích, použijte příznak -k pomocí příkazu setfacl.

$ setfacl -k <directory>

Vzhledem k příkladu, který jsme uvedli dříve, zde je návod, jak odstranit výchozí položky

$ setfacl -k acl-directory

Všimněte si, že smazáním položek ACL z nadřazeného adresáře se neodstraní položky ACL v souborech nebo adresářích obsažených v nadřazeném adresáři.

Odstranění výchozích položek ACL v adresáři a všech podadresářích , museli byste použít rekurzivní možnost (-R)

$ setfacl -kR <directory>

Závěr

V tomto tutoriálu jste se dozvěděli o seznamech řízení přístupu v Linuxu, příkazech getfacl a setfacl.

Dozvěděli jste se více o masce seznamů řízení přístupu a o tom, jak se používají výchozí seznamy ACL k vytváření položek ACL na souborech a podadresářích obsažených v nadřazeném adresáři.

Pokud vás zajímá administrace systému Linux, máme na toto téma mnoho dalších tutoriálů, určitě si je přečtěte!


Linux
  1. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  2. Jak nakonfigurovat ACL (Access Control List) v systému souborů Linux

  3. Jak auditovat přístup k souborům v systému Linux

  1. Seznamy řízení přístupu a externí disky v systému Linux:Co potřebujete vědět

  2. Příkaz historie v Linuxu Vysvětleno do hloubky

  3. Linux File Access Monitoring?

  1. Linux – Blokovat síťový přístup procesu?

  2. UNIX/Linux:Základy seznamů řízení přístupu (ACL).

  3. souběžný přístup k souboru linux