Hoe bestandssysteem-ACL ‘ s te beheren met PowerShell-Scripts

NTFS-machtigingen typen voor bestanden en mappen

Er zijn zowel basis-als geavanceerde NTFS-machtigingen. U kunt elk van de machtigingen instellen op “Toestaan” of “weigeren”. Hier zijn de basisrechten:

  • volledige controle: gebruikers kunnen bestanden en mappen wijzigen, toevoegen, verplaatsen en verwijderen, evenals de bijbehorende eigenschappen. Bovendien kunnen gebruikers de instellingen voor machtigingen voor alle bestanden en submappen wijzigen.
  • wijzigen: Gebruikers kunnen bestanden en bestandseigenschappen bekijken en wijzigen, inclusief het verwijderen en toevoegen van bestanden aan een map of bestandeigenschappen aan een bestand.
  • Read & uitvoeren: gebruikers kunnen uitvoerbare bestanden uitvoeren, inclusief script
  • lezen: gebruikers kunnen bestanden, bestandseigenschappen en mappen bekijken.
  • Write: gebruikers kunnen naar een bestand schrijven en Bestanden toevoegen aan mappen.

Hier is de lijst met geavanceerde machtigingen:

  • map doorkruisen / bestand uitvoeren: Gebruikers kunnen door mappen navigeren om andere bestanden of mappen te bereiken, zelfs als ze geen machtigingen hebben voor deze bestanden of mappen. Gebruikers kunnen ook uitvoerbare bestanden uitvoeren. De machtiging Doorloopmap wordt alleen van kracht wanneer de groep of gebruiker in de module Groepsbeleid niet het recht heeft om Doorloopcontrole te omzeilen.
  • Map weergeven / gegevens lezen: gebruikers kunnen een lijst met bestanden en submappen in de map bekijken, evenals de inhoud van de bestanden.
  • Leesattributen: gebruikers kunnen de attributen van een bestand of map bekijken, bijvoorbeeld of het alleen-lezen of verborgen is.
  • schrijf attributen: gebruikers kunnen de attributen van een bestand of map wijzigen.
  • Extended attributen lezen: gebruikers kunnen de extended attributen van een bestand of map bekijken, zoals machtigingen en aanmaak-en wijzigingstijden.
  • schrijf uitgebreide attributen: gebruikers kunnen de uitgebreide attributen van een bestand of map wijzigen.
  • Create Files / Write Data: de” Create Files ” toestemming staat gebruikers toe om bestanden in de map aan te maken. (Deze rechten gelden alleen voor mappen.) De” Write Data ” toestemming stelt gebruikers in staat om wijzigingen aan te brengen in het bestand en bestaande inhoud te overschrijven. (Deze toestemming geldt alleen voor bestanden.)
  • Mappen aanmaken / gegevens toevoegen: met de” mappen aanmaken ” toestemming kunnen gebruikers mappen aanmaken binnen een map. (Deze rechten gelden alleen voor mappen.) De” gegevens toevoegen ” toestemming stelt gebruikers in staat om wijzigingen aan het einde van het bestand aan te brengen, maar ze kunnen bestaande gegevens niet wijzigen, verwijderen of overschrijven. (Deze toestemming geldt alleen voor bestanden.)
  • Delete: gebruikers kunnen het bestand of de map verwijderen. (Als gebruikers niet de “Delete” toestemming hebben op een bestand of map, kunnen ze het nog steeds verwijderen als ze de “Delete submappen And Files” toestemming hebben op de bovenliggende map.)
  • leesrechten: gebruikers kunnen de rechten van een bestand of map lezen, zoals “Full Control”, “Read”en ” Write”.
  • Machtigingen wijzigen: gebruikers kunnen de machtigingen van een bestand of map wijzigen.
  • eigenaar worden: gebruikers kunnen eigenaar worden van het bestand of de map. De eigenaar van een bestand of map kan altijd Machtigingen voor het bestand of de map wijzigen, ongeacht bestaande machtigingen die het bestand of de map beschermen.
  • synchroniseren: gebruikers kunnen het object gebruiken voor synchronisatie. Hiermee kan een thread wachten tot het object zich in de gesignaleerde toestand bevindt. Dit recht wordt niet weergegeven in ACL Editor. U kunt hier meer over lezen.

U kunt al deze gebruikersmachtigingen vinden door het volgende PowerShell-script uit te voeren:

::getnames()

NTFS-machtigingen kunnen expliciet of overgenomen zijn. Expliciete machtigingen zijn machtigingen die afzonderlijk worden geconfigureerd, terwijl overgenomen machtigingen worden overgenomen van de bovenliggende map. De hiërarchie voor machtigingen is als volgt:

  • Explicit Deny
  • Explicit Allow
  • geërfd Deny
  • geërfd Allow

nu we weten dat NTFS-machtigingen dat zijn, laten we onderzoeken hoe we ze kunnen beheren.

ACL ophalen voor bestanden en mappen

De eerste PowerShell-cmdlet voor het beheren van bestand-en mapmachtigingen is “get-acl”; het toont alle objectmachtigingen. Laten we bijvoorbeeld de lijst van alle machtigingen voor de map met het objectpad “\\fs1\shared\sales”ophalen:

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

Als u een volledig rapport over NTFS-machtigingen via PowerShell wilt ontvangen, kunt u deze eenvoudige how-to volgen over het exporteren van NTFS-machtigingen naar CSV.

bestand-en mapmachtigingen kopiëren

om machtigingen te kopiëren, moet een gebruiker zowel de bron-als de doelmappen bezitten. Het volgende commando kopieert de machtigingen van de map “Accounting” naar de map “Sales”:

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

zoals we kunnen zien aan de uitvoer van de” get-acl “commando’ s voor en na het kopiëren van machtigingen, zijn de” Sales ” gedeelde mapmachtigingen gewijzigd.

Machtigingen voor bestanden en mappen instellen

de PowerShell” set-acl ” – cmdlet wordt gebruikt om de beveiligingsdescriptor van een bepaald item te wijzigen, zoals een bestand, map of registersleutel; met andere woorden, het wordt gebruikt om machtigingen voor bestanden of mappen te wijzigen. Het volgende script stelt de” FullControl “toestemming in op “Allow” voor de gebruiker ” ENTERPRISE \ T.Simpson” to the folder “Sales”:

Als u andere machtigingen wilt instellen voor gebruikers of beveiligingsgroepen, kies ze dan uit de onderstaande tabel:

Er zijn ook machtigingen sets van basis toegangsrechten die kunnen worden toegepast:

gebruikersrechten verwijderen

om een machtiging te verwijderen, gebruikt u de parameter “removeaccessrule”. Laten we de “Allow FullControl” toestemming voor T. Simpson verwijderen naar de” Sales “Map:

merk op dat T.Simpson heeft nog steeds de” Deny FullControl ” toestemming. Om het te verwijderen, gebruiken we het commando “PurgeAccessRules”, dat de rechten van T. Simpson volledig zal wissen naar de “Sales” Map:

merk op dat “PurgeAccessRules” niet werkt met een string gebruikersnaam; het werkt alleen met SID ‘ s. Daarom hebben we de klasse “Ntaccount” gebruikt om de gebruikersnaam van een string om te zetten in een SID. Merk ook op dat “PurgeAccessRules” alleen werkt met expliciete permissies; het zuivert geërfde niet.

Machtigingen overerving uitschakelen of inschakelen

om overerving te beheren, gebruiken we de “SetAccessRuleProtection” methode. Het heeft twee parameters:

  • De eerste parameter is verantwoordelijk voor het blokkeren van overerving van de bovenliggende map. Het heeft twee staten: “$ true ” En “$false”.
  • de tweede parameter bepaalt of de huidige overgenomen rechten behouden of verwijderd worden. Het heeft dezelfde twee toestanden: “$ true ” En “$false”.

laten we overerving uitschakelen voor de” Sales ” map en alle overgenomen machtigingen ook verwijderen:

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

nu hebben we nog maar één toegangsrechten over (omdat deze expliciet is toegevoegd); alle overgenomen rechten zijn verwijderd.

laten we deze wijziging ongedaan maken en overerving voor de map “Sales” opnieuw inschakelen:

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

bestand-en Mapeigenaarschap wijzigen

Als u een eigenaar voor een map wilt instellen, moet u de methode “SetOwner” uitvoeren. Laten we “ENTERPRISE\J. Carter” de eigenaar van de “verkoop” map maken:

merk op dat we opnieuw de klasse” Ntaccount ” hebben gebruikt om de gebruikersnaam van een string naar een SID te converteren.

merk op dat de methode” SetOwner “u niet in staat stelt om de eigenaar te veranderen naar een account dat u wilt; het account moet de rechten” Take Ownership”,” Read “en” Change Permissions ” hebben.

zoals u kunt zien, is het zeer eenvoudig om NTFS-machtigingen te beheren met PowerShell. Maar vergeet niet om NTFS-machtigingen ook te controleren — het is van cruciaal belang voor de beveiliging om alle wijzigingen aan uw bestandsservers bij te houden om het lekken van gegevens te verminderen en de insiderdreiging en andere it-beveiligingsrisico ‘ s te bestrijden. Hier is een basisgids over het controleren van NTFS-machtigingen met PowerShell.

Jeff is directeur Global Solutions Engineering bij Netwrix. Hij is een lange tijd Netwrix blogger, spreker en presentator. In de NetWrix blog, Jeff deelt lifehacks, tips en trucs die drastisch kunnen verbeteren van uw systeembeheer ervaring.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.