Nástroj Setfacl nastavuje seznamy řízení přístupu (ACL) souborů a adresářů. Na příkazovém řádku následuje sekvence příkazů sekvence souborů (za nimiž může následovat další sekvence příkazů atd.).
- Možnosti -m, a -X očekávejte ACL na příkazovém řádku. Více položek ACL je odděleno čárkami (`, ‚). Možnosti -M, a -X číst ACL ze souboru nebo ze standardního vstupu. Formát vstupu ACL je popsán v části PŘIHLÁŠKY ACL.
- The –soubor a –set-file možnosti nastavit ACL souboru nebo adresáře. Předchozí seznam ACL je nahrazen. Záznamy ACL pro tuto operaci musí obsahovat oprávnění.
- The -m (- upravit) a -M (–modify-file) možnosti upravují seznam ACL souboru nebo adresáře. Záznamy ACL pro tuto operaci musí obsahovat oprávnění.
- The -x (- odebrat) a -X (- odebrat soubor) možnosti odebrat položky ACL. Pouze položky ACL bez povolení pole jsou přijímány jako parametry, pokud není definován POSIXLY_CORRECT.
Při čtení ze souborů pomocí -M, a -X možnosti, setfacl přijímá výstup, který produkuje getfacl. Na jednom řádku je maximálně jeden záznam ACL. Po znaku libry (`# ‚) je vše až do konce řádku považováno za komentář. Pokud se setfacl používá v systému souborů, který nepodporuje ACL, setfacl pracuje s bity oprávnění režimu souboru. Pokud seznam ACL nezapadá úplně do bitů oprávnění, setfacl upraví bity oprávnění v režimu souboru tak, aby co nejvíce odrážel seznam ACL, zapíše chybovou zprávu na standardní chybu a vrátí se stavem ukončení větším než 0.
Pomocí Setfacl
Nejprve zkuste nastavit základní seznam pro složku ve vašem domovském adresáři. Jelikož to zkoušíte poprvé, vytvořte si nový, se kterým si zahrajete. Tímto způsobem nebudete riskovat uzamčení důležitých dokumentů. mkdir ~ / acl-test
Dále použijte setfacl a udělejte jinému uživateli v systému přístup ke složce. Setfacl používá -m příznak upravit seznamy řízení přístupu pro soubor. To obvykle znamená přidání uživatele nebo skupiny. setfacl -mu: uživatelské jméno: rwx ~ / acl-test /
The u než první dvojtečka řekne příkazu, že mluvíte o uživatelském jménu. The rwx po druhém granty read, wobřad, a eXzvláštní oprávnění. Totéž platí pro skupiny zadáním G namísto u před prvním dvojtečkou. setfacl -mg: název skupiny: rwx ~ / acl-test /
Funguje stejně jako v předchozím příkladu, kromě toho, že uděluje oprávnění celé skupině. The -X vlajka funguje opačně -m. Odvolá přístup k určenému uživateli nebo skupině. setfacl -xu: uživatelské jméno: w ~ / acl-test /
Příkaz uživateli zruší přístup pro zápis do adresáře. Můžete také přímo upravit oprávnění pro všechny aktuální uživatele. To zahrnuje vlastníka souboru a všechny další uživatele, kterým byla udělena oprávnění. Jedná se o zkratku, která používá existující příkaz, ale vynechá uživatelské jméno. setfacl -mu :: rx ~ / acl-test /
To udělí všem existujícím uživatelům oprávnění ke čtení a spouštění, ale odebere přístup pro zápis. Totéž funguje s -X příznak a odebrání oprávnění. setfacl -xu :: w ~ / acl-test /
To je v podstatě stejné jako v předchozím příkladu, obrácené. setfacl také umožňuje kopírovat seznamy řízení přístupu z jednoho souboru do druhého. Ujistěte se, že má váš uživatel plný přístup k testovací složce, a vytvořte dva nové soubory, se kterými budete pracovat. klepněte na ~ / acl-test / soubor {1,2} .txt
Nyní upravte oprávnění prvního souboru. setfacl -mu: username: rx ~ / acl-text / file1.txt
Nyní můžete poslat výsledky getfacl, příkazu pro načtení aktuálních informací ACL, do setfacl. getfacl ~ / acl-test / file1.txt | setfacl –set-file = – ~ / acl-text / file2.txt
Druhá výplň bude mít stejná oprávnění jako první. Nakonec můžete odstranit všechny rozšířené položky ACL vytvořené příkazem. Tím ponecháte souboru oprávnění uživatele a skupiny, která původně měla. Chcete-li to provést, použijte příznak -b. setfacl -b ~ / acl-test /
Toto jsou nejčastější použití setfacl. Pokud se chcete ponořit hlouběji, další část této příručky je úplné technické rozdělení příkazu.
Technické zhroucení Setfacl
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] pilník …
setfacl –restore = soubor
Oprávnění
Vlastníkovi souboru a procesům schopným CAP_FOWNER je uděleno právo upravovat seznamy ACL souboru. To je analogické s oprávněními požadovanými pro přístup do režimu souborů. (V současných systémech Linux je root jediným uživatelem s funkcí CAP_FOWNER.)
Možnosti
-b, – odebrat vše
- Odeberte všechny rozšířené položky ACL. Základní položky ACL vlastníka, skupiny a dalších jsou zachovány.
-k, – odebrat-výchozí
- Odeberte výchozí seznam ACL. Pokud neexistuje žádný výchozí ACL, nebudou vydána žádná varování.
-n, –ne-mask
- Nepřepočítávejte masku účinných práv. Výchozí chování setfacl je přepočítat položku masky ACL, pokud nebyla explicitně zadána položka masky. Položka masky je nastavena na sjednocení všech oprávnění vlastnící skupiny a všech jmenovaných položek uživatelů a skupin. (Jedná se přesně o položky ovlivněné položkou masky).
–maska
- Přepočítat masku účinných práv, i když byla explicitně zadána položka masky ACL. (Viz -n volba.)
-d, – výchozí
- Všechny operace se vztahují na výchozí seznam ACL. Pravidelné položky ACL ve vstupní sadě jsou povýšeny na výchozí položky ACL. Výchozí položky ACL ve vstupní sadě jsou zahozeny. (Pokud k tomu dojde, vydá se varování).
–restore = soubor
- Obnovte zálohu oprávnění vytvořenou programem `getfacl -R ‚nebo podobným. Pomocí tohoto mechanismu jsou obnovena všechna oprávnění úplného podstromu adresáře. Pokud vstup obsahuje komentáře vlastníka nebo komentáře skupiny a setfacl je spuštěn uživatelem root, obnoví se také vlastník a vlastnická skupina všech souborů. Tuto možnost nelze kombinovat s jinými možnostmi kromě `–test ‚.
–test
- Testovací mód. Místo změny seznamů ACL libovolných souborů jsou uvedeny výsledné seznamy ACL.
-R, – rekurzivní
- Použít operace na všechny soubory a adresáře rekurzivně. Tuto možnost nelze kombinovat s programem „–restore“.
-L, –logické
- Logická procházka, následujte symbolické odkazy. Výchozí chování je sledovat argumenty symbolických odkazů a přeskočit symbolické odkazy, které se vyskytují v podadresářích. Tuto možnost nelze kombinovat s programem „–restore“.
-P, – fyzický
- Fyzická chůze, přeskočte všechny symbolické odkazy. Tím také přeskočíte argumenty symbolických odkazů. Tuto možnost nelze kombinovat s programem „–restore“.
–verze
- Vytiskněte verzi setfacl a ukončete.
–Pomoc
- Vytisknout nápovědu vysvětlující možnosti příkazového řádku.
Konec možností příkazového řádku. Všechny zbývající parametry jsou interpretovány jako názvy souborů, i když začínají pomlčkou. Pokud je parametr názvu souboru jedinou pomlčkou, setfacl načte seznam souborů ze standardního vstupu.
Záznamy ACL
Obslužný program setfacl rozpoznává následující vstupní formáty ACL:
[d[efault]:] [u[ser]:]uid [:perms]
- Oprávnění pojmenovaného uživatele. Oprávnění vlastníka souboru, pokud uid je prázdný.
[d[efault]:]g[roup]:gid [:perms]
- Oprávnění pojmenované skupiny. Oprávnění vlastnící skupiny, pokud gid je prázdný.
[d[efault]:]m[ask][:] [:perms]
- Maska efektivních práv
[d[efault]:]o[ther][:] [:perms]
- Oprávnění ostatních
Mezery mezi znaky oddělovače a znaky neoddělovače jsou ignorovány. V operacích úprav a nastavení se používají správné položky ACL včetně oprávnění. (možnosti -m, -M, –soubor a –set-file). Záznamy bez povolení pole se používají pro vymazání položek (možnosti -X a -X). Pro uid a gid můžete zadat jméno nebo číslo. The povolení pole je kombinace znaků, které označují oprávnění: číst (r), napsat (w), vykonat (X), spustit pouze v případě, že soubor je adresář nebo již má oprávnění ke spuštění pro některého uživatele(X). Případně povolení pole může být osmičková číslice (0-7).
Automaticky vytvořené položky
Soubory a adresáře zpočátku obsahují pouze tři základní položky ACL pro vlastníka, skupinu a další. Aby byla ACL platná, je třeba splnit některá pravidla:
- Tři základní položky nelze odstranit. Každý z těchto základních typů záznamů musí mít přesně jednu položku.
- Kdykoli seznam ACL obsahuje položky pojmenovaných uživatelů nebo pojmenované objekty skupiny, musí také obsahovat masku účinných práv.
- Kdykoli seznam ACL obsahuje jakékoli položky výchozího seznamu ACL, musí také existovat tři základní položky základního seznamu ACL (výchozí vlastník, výchozí skupina a výchozí další).
- Kdykoli výchozí seznam ACL obsahuje položky pojmenovaných uživatelů nebo pojmenované objekty skupiny, musí také obsahovat výchozí masku účinných práv.
Aby uživatel pomohl zajistit tato pravidla, setfacl vytváří položky z existujících položek za následujících podmínek:
- Pokud seznam ACL obsahuje položky pojmenovaného uživatele nebo pojmenované skupiny a neexistuje žádná položka masky, vytvoří se položka masky obsahující stejná oprávnění jako položka skupiny. Pokud však -n Je-li tato možnost zadána, oprávnění položky masky se dále upraví tak, aby zahrnovala sjednocení všech oprávnění ovlivněných položkou masky. (Viz -n popis možnosti).
- Pokud je vytvořena položka Výchozí seznam ACL a Výchozí seznam ACL neobsahuje žádný záznam vlastníka, skupiny vlastníků ani jiné položky, do výchozího seznamu ACL se přidá kopie položky vlastníka seznamu ACL, skupiny vlastnění nebo dalších.
- Pokud výchozí seznam ACL obsahuje položky pojmenovaných uživatelů nebo položky pojmenovaných skupin a neexistuje žádná položka masky, je přidána položka masky obsahující stejná oprávnění jako výchozí položka skupiny výchozích ACL. Pokud však -n Je-li tato možnost zadána, oprávnění položky masky se dále upraví tak, aby zahrnovala sjednocení všech oprávnění ovlivněných položkou masky. (Viz -npopis možnosti).
Příklady
- Udělení dalšího přístupu pro čtení pro uživatele
- soubor setfacl -mu: lisa: r
- Odvolání přístupu pro zápis od všech skupin a všech pojmenovaných uživatelů (pomocí masky účinných práv)
- soubor setfacl -mm :: rx
- Odebrání pojmenované položky skupiny z ACL souboru
- setfacl -xg: soubor zaměstnanců
- Kopírování ACL jednoho souboru do druhého
- getfacl file1 | setfacl –set-file = – soubor2
- Kopírování přístupového seznamu ACL do výchozího seznamu ACL
- getfacl -a dir | setfacl -d -M- dir
Shoda s Posix 1003.1e Návrh Standardu 17
Pokud je definována proměnná prostředí POSIXLY_CORRECT, změní se výchozí chování setfacl následovně: Všechny nestandardní možnosti jsou deaktivovány. Předpona „ výchozí: “ je zakázána. The -X a -X možnosti také přijímají pole oprávnění (a ignorují je).