Hur man hanterar filsystem ACL med PowerShell-skript

NTFS-Behörighetstyper för filer och mappar

det finns både grundläggande och avancerade NTFS-behörigheter. Du kan ställa in var och en av behörigheterna till ”Tillåt” eller ”neka”. Här är de grundläggande behörigheterna:

  • Full kontroll: användare kan ändra, lägga till, flytta och ta bort filer och kataloger, liksom deras tillhörande egenskaper. Dessutom kan användare ändra behörighetsinställningar för alla filer och underkataloger.
  • ändra: Användare kan visa och ändra filer och filegenskaper, inklusive att ta bort och lägga till filer i en katalog eller filegenskaper i en fil.
  • Läs & kör: användare kan köra körbara filer, inklusive skript
  • Läs: användare kan visa filer, filegenskaper och kataloger.
  • skriv: Användare kan skriva till en fil och lägga till filer i kataloger.

här är listan över avancerade behörigheter:

  • Traverse Folder / Execute File: Användare kan navigera genom mappar för att nå andra filer eller mappar, även om de inte har några behörigheter för dessa filer eller mappar. Användare kan också köra körbara filer. Behörigheten Traverse Folder träder i kraft endast när gruppen eller användaren inte har ”Bypass Traverse Checking” direkt i snapin-modulen för grupppolicy.
  • listmapp / läsdata: användare kan visa en lista över filer och undermappar i mappen samt innehållet i filerna.
  • Läs attribut: användare kan visa attributen för en fil eller mapp, till exempel om den är skrivskyddad eller dold.
  • Skrivattribut: användare kan ändra attributen för en fil eller mapp.
  • Läs utökade attribut: användare kan visa de utökade attributen för en fil eller mapp, till exempel behörigheter och skapnings-och modifieringstider.
  • skriv utökade attribut: användare kan ändra de utökade attributen för en fil eller mapp.
  • skapa filer / Skrivdata: behörigheten ”Skapa filer” tillåter användare att skapa filer i mappen. (Denna behörighet gäller endast mappar.) Behörigheten ”skriv Data” tillåter användare att göra ändringar i filen och skriva över befintligt innehåll. (Detta tillstånd gäller endast filer.)
  • skapa mappar / Lägg till Data: behörigheten ”Skapa mappar” tillåter användare att skapa mappar i en mapp. (Denna behörighet gäller endast mappar.) Behörigheten ”Lägg till Data” tillåter användare att göra ändringar i slutet av filen, men de kan inte Ändra, Ta bort eller skriva över befintliga data. (Detta tillstånd gäller endast filer.)
  • ta bort: användare kan ta bort filen eller mappen. (Om användare inte har behörigheten” ta bort ”i en fil eller mapp kan de fortfarande ta bort den om de har behörigheten” ta bort undermappar och filer ” i den överordnade mappen.)
  • läsbehörigheter: användare kan läsa behörigheterna för en fil eller mapp, till exempel ”Full Control”, ”Read” och ”Write”.
  • ändra behörigheter: användare kan ändra behörigheterna för en fil eller mapp.
  • ta ägande: användare kan ta ägande av filen eller mappen. Ägaren till en fil eller mapp kan alltid ändra behörigheter för den, oavsett befintliga behörigheter som skyddar filen eller mappen.
  • synkronisera: användare kan använda objektet för synkronisering. Detta gör det möjligt för en tråd att vänta tills objektet är i signalerat tillstånd. Denna rättighet presenteras inte i ACL Editor. Du kan läsa mer om det här.

Du kan hitta alla dessa användarbehörigheter genom att köra följande PowerShell-skript:

::getnames()

NTFS-behörigheter kan vara antingen uttryckliga eller ärvda. Explicita behörigheter är behörigheter som konfigureras individuellt, medan ärvda behörigheter ärvs från den överordnade mappen. Hierarkin för behörigheter är som följer:

  • Explicit neka
  • Explicit Tillåt
  • ärvt neka
  • ärvt tillåta

Nu när vi vet att NTFS-behörigheter är, låt oss undersöka hur vi hanterar dem.

hämta ACL för filer och mappar

den första PowerShell-cmdlet som används för att hantera fil-och mappbehörigheter är ”get-acl”; den listar alla objektbehörigheter. Låt oss till exempel få listan över alla behörigheter för mappen med objektvägen ”\\fs1\shared\sales”:

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

om du vill få en fullständig NTFS-behörighetsrapport via PowerShell kan du följa den här enkla hur du exporterar NTFS-behörigheter till CSV.

kopiera fil-och mappbehörigheter

för att kopiera behörigheter måste en användare äga både käll-och målmapparna. Följande kommando kopierar behörigheterna från mappen ”redovisning” till mappen ”försäljning” :

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

som vi kan se från utgången från kommandona” get-acl ”före och efter behörighetskopian har” försäljning ” delade mappbehörigheter ändrats.

ange fil-och mappbehörigheter

PowerShell ”set-acl” cmdlet används för att ändra säkerhetsbeskrivaren för ett visst objekt, till exempel en fil, mapp eller en registernyckel; med andra ord används den för att ändra fil-eller mappbehörigheter. Följande skript ställer in behörigheten” FullControl ”till” Allow ”för användaren” ENTERPRISE\T.Simpson” till mappen ”försäljning”:

om du vill ställa in andra behörigheter till användare eller säkerhetsgrupper, välj dem från tabellen nedan:

det finns också behörigheter uppsättningar av grundläggande åtkomsträttigheter som kan tillämpas:

ta bort användarbehörigheter

för att ta bort ett tillstånd, använd parametern ”Removeaccessrule”. Låt oss ta bort tillståndet ”Tillåt FullControl” för T. Simpson till mappen ”försäljning”:

Lägg märke till att T.Simpson har fortfarande” neka FullControl ” tillstånd. För att ta bort det, låt oss använda kommandot ”PurgeAccessRules”, som helt torkar T. Simpsons behörigheter till mappen ”Sales”:

Observera att ”PurgeAccessRules” inte fungerar med ett stränganvändarnamn; det fungerar bara med SIDs. Därför använde vi klassen ”Ntaccount” för att konvertera användarkontonamnet från en sträng till ett SID. Observera också att” PurgeAccessRules ” bara fungerar med uttryckliga behörigheter; Det rensar inte ärvda.

inaktivera eller aktivera behörigheter arv

för att hantera arv använder vi metoden ”SetAccessRuleProtection”. Den har två parametrar:

  • den första parametern är ansvarig för att blockera arv från modermappen. Den har två stater:” $true ”och”$false”.
  • den andra parametern avgör om de nuvarande ärvda behörigheterna behålls eller tas bort. Den har samma två stater:” $true ”och”$false”.

låt oss inaktivera arv för mappen ”försäljning” och ta bort alla ärvda behörigheter också:

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

nu har vi bara en åtkomstbehörighet kvar (eftersom den uttryckligen tillsattes); alla ärvda behörigheter togs bort.

låt oss återställa denna ändring och aktivera arv för mappen ”försäljning” igen:

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

ändra fil-och Mappägande

om du vill ställa in en ägare för en mapp måste du köra ”SetOwner” – metoden. Låt oss göra ”ENTERPRISE \ J. Carter” ägaren till mappen ” försäljning:

Observera att vi återigen använde klassen” Ntaccount ” för att konvertera användarkontonamnet från en sträng till ett SID.

Observera att” SetOwner ”- metoden inte gör det möjligt för dig att ändra ägaren till något konto du vill ha; kontot måste ha rättigheterna” Ta äganderätt”,” Läs ”och” ändra behörigheter”.

som du kan se är det väldigt enkelt att hantera NTFS-behörigheter med PowerShell. Men glöm inte att granska NTFS — behörigheter också-det är viktigt för säkerheten att spåra alla ändringar som gjorts på dina filservrar för att minska dataläckage och bekämpa insiderhotet och andra It-säkerhetsrisker. Här är en grundläggande guide om hur du granskar NTFS-behörigheter med PowerShell.

Jeff är chef för Global Solutions Engineering på Netwrix. Han är en lång tid Netwrix bloggare, högtalare, och presentatör. I NetWrix-bloggen delar Jeff lifehacks, tips och tricks som dramatiskt kan förbättra din systemadministrationsupplevelse.

Lämna ett svar

Din e-postadress kommer inte publiceras.