Jak spravovat ACL systému souborů pomocí skriptů PowerShell

typy oprávnění NTFS pro soubory a složky

existují základní i pokročilá oprávnění NTFS. Každé oprávnění můžete nastavit na „Povolit“ nebo „odepřít“. Zde jsou základní oprávnění:

  • Úplné Řízení: Uživatelé mohou upravovat, přidávat, přesouvat a mazat soubory a adresáře, stejně jako jejich přidružené vlastnosti. Kromě toho mohou uživatelé změnit nastavení oprávnění pro všechny soubory a podadresáře.
  • upravit: Uživatelé mohou prohlížet a upravovat soubory a vlastnosti souborů, včetně mazání a přidávání souborů do adresáře nebo vlastností souborů do souboru.
  • Read & Execute: uživatelé mohou spouštět spustitelné soubory, včetně skriptu
  • Read: uživatelé mohou prohlížet soubory, vlastnosti souborů a adresáře.
  • Write: uživatelé mohou zapisovat do souboru a přidávat soubory do adresářů.

zde je seznam pokročilých oprávnění:

  • Traverse Folder / Execute File: Uživatelé mohou procházet složkami, aby se dostali k jiným souborům nebo složkám, i když nemají pro tyto soubory nebo složky žádná oprávnění. Uživatelé mohou také spouštět spustitelné soubory. Povolení složky Traverse se projeví pouze v případě, že skupina nebo uživatel nemá „kontrolu bypassu“ přímo v modulu snap – in Zásady skupiny.
  • seznam složek / čtení dat: uživatelé mohou zobrazit seznam souborů a podsložek ve složce, stejně jako obsah souborů.
  • číst atributy: uživatelé mohou zobrazit atributy souboru nebo složky, například zda je pouze pro čtení nebo skryté.
  • napište atributy: uživatelé mohou změnit atributy souboru nebo složky.
  • číst rozšířené atributy: uživatelé mohou zobrazit rozšířené atributy souboru nebo složky, jako jsou oprávnění a doby vytváření a úprav.
  • napište rozšířené atributy: uživatelé mohou změnit rozšířené atributy souboru nebo složky.
  • Create Files/Write Data: oprávnění „Create Files“ umožňuje uživatelům vytvářet soubory ve složce. (Toto oprávnění se vztahuje pouze na složky.) Oprávnění „zapisovat Data“ umožňuje uživatelům provádět změny v souboru a přepisovat existující obsah. (Toto oprávnění se vztahuje pouze na soubory.)
  • vytvořit složky / připojit Data: oprávnění „vytvořit složky“ umožňuje uživatelům vytvářet složky ve složce. (Toto oprávnění se vztahuje pouze na složky.) Oprávnění „připojit Data“ umožňuje uživatelům provádět změny na konci souboru, ale nemohou měnit, mazat nebo přepisovat existující data. (Toto oprávnění se vztahuje pouze na soubory.)
  • smazat: uživatelé mohou odstranit soubor nebo složku. (Pokud uživatelé nemají oprávnění „odstranit“ v souboru nebo složce, mohou je stále smazat, pokud mají oprávnění „odstranit podsložky a soubory“ v nadřazené složce.)
  • oprávnění ke čtení: uživatelé mohou číst oprávnění souboru nebo složky ,například „Plná kontrola“, „Číst“ a „psát“.
  • Změna oprávnění: uživatelé mohou změnit oprávnění souboru nebo složky.
  • převzít vlastnictví: uživatelé mohou převzít vlastnictví souboru nebo složky. Vlastník souboru nebo složky může vždy změnit oprávnění k němu, bez ohledu na existující oprávnění, která chrání soubor nebo složku.
  • synchronizovat: uživatelé mohou použít objekt pro synchronizaci. To umožňuje podprocesu počkat, až bude objekt v signalizovaném stavu. Toto právo není uvedeno v editoru ACL. Více si o tom můžete přečíst zde.

všechna tato uživatelská oprávnění můžete najít spuštěním následujícího skriptu PowerShell:

::getnames()

oprávnění NTFS mohou být explicitní nebo zděděná. Explicitní oprávnění jsou oprávnění, která jsou nakonfigurována individuálně, zatímco zděděná oprávnění jsou zděděna z nadřazené složky. Hierarchie oprávnění je následující:

  • Explicitní Deny
  • Explicitní Povolit
  • Zděděné Deny
  • Zděděné Povolit

Teď, když víme, NTFS oprávnění, pojďme prozkoumat, jak je zvládat.

Get ACL pro soubory a složky

první rutina PowerShell používaná ke správě oprávnění souborů a složek je „get-acl“; uvádí všechna oprávnění objektů. Řekněme například, získat seznam všech oprávnění pro složku s objektem cestu „\\fs1\shared\prodej“:

get-acl \\fs1\shared\sales | fl

Pokud chcete získat plné oprávnění NTFS hlásit přes PowerShell, můžete sledovat tyto jednoduché, jak -, aby o exportu oprávnění NTFS do formátu CSV.

kopírovat oprávnění souborů a složek

Chcete-li kopírovat oprávnění, musí uživatel vlastnit zdrojové i cílové složky. Následující příkaz zkopíruje oprávnění ze složky „účetnictví“ do složky “ prodej:

get-acl \\fs1\shared\accounting | Set-Acl \\fs1\shared\sales

Jak můžeme vidět z výstupu „get-acl“ příkazy před a po oprávnění kopírovat, „Prodej“ sdílené složky oprávnění byly změněny.

Nastavit Oprávnění Souborů a Složek

PowerShell „set-acl“ rutiny se používá k změnit popisovač zabezpečení stanovené položky, jako je například soubor, složku nebo klíč registru; jinými slovy, slouží k úpravám souboru nebo složky oprávnění. Následující skript nastaví oprávnění “ FullControl „na“ Povolit „pro uživatele“ ENTERPRISE\T.Simpson“ do složky „Prodej“:

Pokud chcete nastavit další oprávnění pro uživatele nebo skupiny zabezpečení, vyberte si z tabulky níže:

k Dispozici jsou také oprávnění sady základní přístupová práva, která mohou být použita:

Odstranit Oprávnění Uživatele

odstranit oprávnění, použijte „RemoveAccessRule“ parametr. Pojďme odstranit „Povolit FullControl“ povolení k T. Simpson „Prodej“ složku:

Všimněte si, že T.Simpson má stále povolení“ Deny FullControl“. Chcete-li ji odstranit, můžeme použít příkaz „PurgeAccessRules“, který bude zcela vymazat T. Simpson oprávnění „Prodej“ složku:

Všimněte si, že „PurgeAccessRules“ nefunguje s string uživatelské jméno; to funguje pouze s SIDs. Proto jsme použili třídu „Ntaccount“ k převodu názvu uživatelského účtu z řetězce na Sid. Také si všimněte, že „PurgeAccessRules“ funguje pouze s explicitními oprávněními, nevyčistí zděděné.

zakázat nebo povolit dědičnost oprávnění

pro správu dědičnosti používáme metodu „SetAccessRuleProtection“. Má dva parametry:

  • první parametr je zodpovědný za blokování dědičnosti z nadřazené složky. Má dva stavy: „$ true “ a „$ false“.
  • druhý parametr určuje, zda jsou stávající zděděná oprávnění zachována nebo odebrána. Má stejné dva stavy: „$ true “ a „$ false“.

zakážeme dědičnost pro složku „prodej“ a odstraníme také všechna zděděná oprávnění:

$acl = Get-Acl \\fs1\shared\sales$acl.SetAccessRuleProtection($true,$false)$acl | Set-Acl \\fs1\shared\sales

nyní máme pouze jedno přístupové oprávnění (protože bylo explicitně přidáno); všechna zděděná oprávnění byla odstraněna.

řekněme, vrátit se to změnit a povolit dědičnost pro složky „Prodej“ znovu:

$acl = Get-Acl \\fs1\shared\sales$acl.SetAccessRuleProtection($false,$true)$acl | Set-Acl \\fs1\shared\sales

Změna Souborů a Složek Vlastnictví

Pokud chcete nastavit vlastník složky, musíte spustit „SetOwner“ metoda. Udělejme „ENTERPRISE\J. Carter“ vlastníkem složky „Sales“ :

Všimněte si, že jsme znovu použili třídu „Ntaccount“ k převodu názvu uživatelského účtu z řetězce na SID.

Všimněte si, že „SetOwner“ metoda neumožňuje změnit vlastníka na jiný účet, který chcete; účet musí mít „Převzít Vlastnictví“, „Čtení“ a „Změnu Oprávnění“ práva.

jak vidíte, je velmi snadné spravovat oprávnění NTFS pomocí PowerShell. Ale nezapomeňte auditorské oprávnění NTFS, stejně — to je kritické pro bezpečnost, aby sledovat všechny změny provedené na vaše souborové servery za účelem snížení úniku dat a boj proti obchodování zasvěcených hrozby a další bezpečnostní rizika. Zde je základní průvodce, jak auditovat oprávnění NTFS pomocí PowerShell.

je ředitelem globálního řešení v Netwrix. Je dlouholetým blogerem, řečníkem a moderátorem Netwrix. V blogu Netwrix, Jeff sdílí lifehacks, tipy a triky, které mohou dramaticky zlepšit zážitek ze správy systému.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.