NTFS- en registermachtigingen: ICACLS, PowerShell en SetACL uitgelegd

Laatste update: 09/10/2025
Auteur: Isaac
  • Begrijp ACL's, overerving en SID's zodat u zonder verrassingen machtigingen kunt toepassen.
  • Automatiseer met ICACLS/TAKEOWN en PowerShell (Get-Acl/Set-Acl).
  • Beheren NTFS en Register met SetACL en gebruik DACL-backups.

NTFS-machtigingen en register in Windows

Het beheren van machtigingen in Windows kan ingewikkeld lijken, maar dat hoeft niet zo te zijn. Als u NTFS, toegangscontrolelijsten (ACL's) en de juiste tools (ICACL's, PowerShell, SetACL) beheerst, wordt het批量 toepassen van machtigingen op bestanden, mappen en registersleutels een betrouwbaar en herhaalbaar proces.

In deze handleiding vindt u alles beknopt en gedetailleerd uitgelegd: belangrijke concepten (ACL, ACE, DACL, SACL, SDDL), overerving en evaluatievolgorde , speciale accounts en SID's, het gebruik van ICACLS en TAKEOWN vanuit CMD , de PowerShell-cmdlets Get-Acl en Set-Acl met praktische voorbeelden , en hoe u met SetACL toegang krijgt tot zowel NTFS als het register. U vindt er ook best practices, oplossingen voor conflicten en auditnotities om u te helpen verrassingen te voorkomen.

Essentiële basisprincipes: NTFS, ACL, ACE, overerving en evaluatievolgorde

Het Windows NTFS-bestandssysteem ondersteunt een robuust beveiligingsmodel gebaseerd op ACL's. Een ACL is een lijst met toegangsrechten (Access Control Entries, ACE's) die de machtigingen definiëren die zijn toegestaan ​​of geweigerd voor identiteiten (gebruikers, groepen, SID's). Elk beveiligd object (bestand, map, registersleutel, service, enz.) heeft een beveiligingsbeschrijving (Security Descriptor, SD) die de volgende informatie bevat: eigenaar, primaire groep, DACL (wie toegang heeft) en SACL (wat wordt gecontroleerd).

De volgorde van evaluatie is cruciaal: expliciete weigeringen worden eerst in overweging genomen , vervolgens expliciete toekenningen , daarna overgeërfde weigeringen en ten slotte overgeërfde toekenningen . Zodra een ACE aan de query voldoet, worden de andere niet meer geëvalueerd . Als een resource geen DACL heeft, verleent het systeem toegang; als er wel een DACL is, maar deze leeg is, wordt de toegang geweigerd.

NTFS kent zes basisrechten (Lezen, Schrijven, Inhoud weergeven, Lezen en uitvoeren, Wijzigen, Volledige controle), die bestaan ​​uit geavanceerde rechten zoals RD (Gegevens lezen), WD (Gegevens schrijven), AD (Toevoegen), REA/WEA (Uitgebreide attributen), RA/WA (Attributen), X (Uitvoeren/Doorlopen), DC (Secundaire verwijderen), DE (Verwijderen), RC (Controle lezen), WDAC (DAC schrijven), WO (Eigenaar schrijven), S (Synchroniseren) en de generieke sets GR/GW/GE/GA. Samengestelde maskers maken snelle toewijzingen mogelijk (bijv. M, F, RX) zonder verlies van precisie.

ACL, ACE, DACL en overervingsconcepten

Speciale accounts en algemene SID's die van invloed zijn op machtigingen

Windows gebruikt verschillende identiteiten met bekende SID's. Creator Owner (S-1-3-0) en Creator Group zijn markeringen die, bij het evalueren van machtigingen, worden vervangen door de huidige eigenaar of diens oudergroep. Owner Rights (geïntroduceerd in Vista/7) stelt u in staat om te beperken wat de eigenaar kan doen, bijvoorbeeld door te voorkomen dat ze de ACL's van hun eigen objecten wijzigen.

TrustedInstaller (Component Installation Service; SID's die beginnen met S-1-5-80) beheert kritieke systeembestanden en sleutels om Windows te beveiligen. Andere systeemidentiteiten zijn onder andere LOCAL SYSTEM (S-1-5-18) , NETWORK SERVICE (S-1-5-20) , LOCAL SERVICE (S-1-5-19) en groepen zoals Authenticated Users (S-1-5-11) , Interactive (S-1-5-4) en Remote Interactive Logon (S-1-5-14) . Inzicht in deze SID's helpt u bij het schrijven van overdraagbare regels en het voorkomen van taalproblemen (Administrators/Administradores).

  Handleiding voor het installeren van AMD Ryzen Master of Intel Extreme Tuning Utility: compatibiliteit, profielen en veilige instellingen

Voor bekende lokale groepen, zoals beheerders , is de SID S-1-5-32-544 . Het toewijzen van machtigingen met behulp van de SID voorkomt locatiegebonden onduidelijkheden. De SID's van lokale accounts beginnen met nummering vanaf S-1-5-1000 (aangemaakte gebruikers), waarbij S-1-5-500 is gereserveerd voor beheerders en S-1-5-501 voor gasten.

Identiteiten en SID's in Windows

ICACLS en TAKEOWN van CMD: Massale toekenning, erfgoed en restauratie

Typische concessies en erfenissen:

Leesrechten voor een gebruiker/groep in een specifieke map:

icacls "\\Path\to\share\folder" /grant DOMINIO\USUARIO:R

Submappen en bestanden die van een bepaalde waarde kunnen worden overgenomen, recursief wijzigen :

icacls "\\Path\to\share\folder" /grant DOMINIO\USUARIO:(OI)(CI)M /T

Erfenis en herstel:

Schakel canonieke overerving in op een boomstructuur:

icacls.exe "%ruta%" /Q /T /inheritance:e

Verwijder overerving en vervang expliciete machtigingen (een veelvoorkomend voorbeeld van beveiliging):

icacls "C:\test" /inheritance:r /grant:r DOM\Todos:(OI)(CI)(F)

Herstel de standaard overgeërfde machtigingen op alle onderliggende apparaten:

icacls "C:\test\ejemplo\*" /c /t /reset

Door SID's te gebruiken, worden taalproblemen vermeden:

Beheerders (S-1-5-32-544) en SYSTEEM (S-1-5-18) met volledige controle in elke submap:

for /F "eol=* tokens=*" %%%%i in ('dir "%ruta%" /b /AD') do icacls.exe "%ruta%\\%%%%i" /Q /grant:r *S-1-5-32-544:(OI)(CI)(F) /grant:r *S-1-5-18:(OI)(CI)(F)

Vervroegd bezit nemen als u er geen toegang toe heeft:

takeown.exe /f "%ruta%" /R /A /D S

Let op: in Engelse systemen wordt automatische bevestiging aangegeven met een Y in plaats van een S.

Meer ICACLS-bewerkingen om onder de knie te krijgen:

Sla de DACL op voor back-up :

icacls C:\test\* /save C:\acl-backup\ACL_backup.txt /T

DACL herstellen vanuit back-up:

icacls C:\test\ /restore C:\acl-backup\ACL_backup.txt

Zoek naar SIDs in ACL :

icacls nombre /findsid SID

Controleer de canonieke status :

icacls nombre /verify

Handige eenvoudige machtigingen: N (geen), F (volledige controle), M (wijzigen), RX (lezen en uitvoeren), R (alleen lezen), W (alleen schrijven), D (verwijderen). Specifieke machtigingen zijn onder andere DE, RC, WDAC, WO, S, AS, MA, GR, GW, GE, GA, RD, WD, AD, REA, WEA, X, DC, RA, WA. Voor overerving: (OI) object, (CI) container, (IO) alleen overerving, (NP) niet doorgeven, (I) overgeërfd.

Een heel praktisch algemeen patroon met ICACLS is:

icacls USUARIO_O_SID:(herencias)(permisos)

Denk eerst na over overerving (OI/CI/IO), vervolgens over het benodigde permissiemasker en besluit ten slotte of je items wilt vervangen (:r) of toevoegen.

PowerShell met Get-Acl en Set-Acl: kopiëren, in bulk toepassen en granulariteit

PowerShell biedt nauwkeurige controle over beveiligingsbeschrijvingen. `Get-Acl` haalt de beveiligingsbeschrijving (SD) van een item (bestand, map, registersleutel) op en `Set-Acl` past deze toe. Deze cmdlet is alleen beschikbaar op Windows en werkt met de FileSystem- en Registry- providers.

Een bulkdescriptor toepassen op meerdere bestanden:

$model = Get-Acl -Path "C:\temp\File0.txt"

Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $model

raad: probeer eerst met -WhatIf om te zien wat er gespeeld zou worden.

Overerving uitschakelen terwijl geërfde ACE's behouden blijven:

$acl = Get-Acl -Path "C:\Pets\Dog.txt"

$acl.SetAccessRuleProtection($true, $true)

Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $acl

Met $isProtected=$true verbreek je de overerving; met $preserveInheritance=$true maak je overgeërfde eigenschappen expliciet.

Geef beheerders volledige controle door een FileSystemAccessRule aan te maken :

$acl = Get-Acl -Path "C:\Pets\Dog.txt"

$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Administrators","FullControl","Allow")

$acl.SetAccessRule($rule)

Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $acl

Belangrijkste Set-Acl-parameters die u vaak zult gebruiken:

  Windows 11-services die u niet moet uitschakelen (en wanneer u dat wel moet doen)

-Path of -LiteralPath (één van beide) om het element te specificeren; -AclObject om de SD door te geven; -InputObject om direct met objecten te werken; -PassThru als u de SD wilt retourneren; -WhatIf en -Confirm voor operationele veiligheid. Het ondersteunt filters, include/exclude en kan centrale toegangspolicies wissen (-ClearCentralAccessPolicy) op systemen met DAC.

Get-Acl en Set-Acl in PowerShell gebruiken

Basis- en geavanceerde rechten in kaart brengen: hoe u het juiste masker kiest

Wanneer u in de GUI basisrechten selecteert (Lezen, Wijzigen, Volledige controle…), activeert u in feite combinaties van geavanceerde rechten . Zo omvat Wijzigen bijvoorbeeld lezen, uitvoeren, schrijven en verwijderen; Volledige controle omvat ook WDAC (machtigingen wijzigen) en WO (eigenaar wijzigen). Inzicht in deze koppeling voorkomt verrassingen en helpt u bij het schrijven van nauwkeurige regels in ICACLS, PowerShell of SetACL.

Houd er bij het documenteren of vergelijken van configuraties rekening mee dat commandoregelprogramma 's afkortingen gebruiken (RD, WD, AD, X, DE, DC, RC, WDAC, WO, enz.). Door uw documentatie te standaardiseren met deze afkortingen kunt u snel herkennen of een DACL bijvoorbeeld schrijfvrije uitvoering toestaat, of dat het verwijderen van onderliggende objecten wel is toegestaan, maar niet van het object zelf.

Werken met het register en NTFS vanuit SetACL / SetACL Studio

SetACL (en de Studio-versie ervan) is een klassiek hulpmiddel voor het beheren van machtigingen in zowel het bestandssysteem als het register. Het voordeel ervan ligt in de consistente syntaxis voor verschillende objecten en het gemak waarmee acties in één regel aan elkaar gekoppeld kunnen worden.

Praktische voorbeelden:

Wijzig de machtigingen voor een registersleutel om een ​​domeingebruiker volledige controle te geven:

SetACLexe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Proveedor\Producto\Clave" -ot reg -actn ace -ace "n:DOMINIO.local\Usuario;p:full"

Geef een lokale/AD-groep volledige controle over een map :

SetACLexe -on "C:\Ruta\Carpeta" -ot file -actn ace -ace "n:usuarios;p:full"

Met SetACL kunt u ook de overerving manipuleren, bestaande ACE's verwijderen en met expliciete SID's werken. Als u rapportage en interactieve bewerking nodig hebt , biedt SetACL Studio een visuele interface met behoud van conceptuele compatibiliteit met de commandoregel.

Real-life scenario's: eigenaren, conflicten, effectieve vergunningen en audits

Het bezitten van een object geeft je niet automatisch volledige controle, maar wel het recht om de DACL te wijzigen . Daarom is het in omgevingen waar je niet wilt dat makers zichzelf verhoogde rechten geven, raadzaam om beperkte eigenaarsrechten (bijvoorbeeld door de eigenaar de WRITE_DAC-toegang te ontzeggen) toe te passen in de hoofdmap. Dit voorkomt dat de maker de machtigingen van de objecten die hij of zij creëert, kan wijzigen .

Typische conflicten: Een gebruiker behoort tot de groep Medewerkers (alleen-lezen) maar heeft een expliciete ACE die schrijven toestaat. De expliciete ACE heeft voorrang . Als u wilt dat de weigering prevaleert, plaatst u een passende expliciete weigering . Houd altijd rekening met de evaluatievolgorde om hiaten te voorkomen.

Overerving verbreken: Wanneer u in de GUI de optie 'Overerfbare machtigingen opnemen' uitschakelt, biedt Windows aan om overgeërfde ACE's expliciet te kopiëren of ze allemaal te verwijderen . Het verwijderen van alles kan ertoe leiden dat het object ontoegankelijk wordt als u niet onmiddellijk nieuwe ACE's toevoegt. Plan en valideer bij grootschalige implementaties met behulp van `-WhatIf` of DACL-backups.

  Hoe u de fouten 0x800F0900, 0x800F0922 en 0x80070070 in Windows kunt oplossen

Effectieve machtigingen en audit: het tabblad Effectieve vergunningen Hiermee kunt u controleren wat een gebruiker of groep ontvangt na evaluatie van alle ACE's. audittoegang (hits/fails), configureer SACL's op het object en schakel objecttoegangscontrole in lokale beleidsregels in; bekijk gebeurtenissen in eventvwr.msc. Selectief auditen vermindert ruis en helpt bij het diagnosticeren.

Gebruikersaccountbeheer (UAC) wijzigt geen NTFS- of registermachtigingen, maar het regelt wel de verhoging van bevoegdheden . Beheerders met een hoog UAC-niveau zien meer waarschuwingen; met een laag UAC-niveau is er minder weerstand, maar een grotere kwetsbaarheid . Pas het niveau aan op basis van het beveiligingsbeleid van uw organisatie.

Automatiseringspatronen: van een snelle Bat tot PowerShell en back-ups

Voor repetitieve taken kunt u combineren AFHAAL + ICACLS een script in batches. Bijvoorbeeld een sjabloon die om het pad vraagt ​​en het volgende toestaat: de eigenaar instellen als beheerder, beheerders/SYSTEEM toekennen, overerving inschakelen, enz. Het belangrijke detail is om automatisch te bevestigen met /D S in TAKEOWN op Spaanse systemen (of /D Y in Engels).

Als PowerShell jouw ding is, kun je patronen inkapselen zoals DACL kopiëren van een model, erfopvolging verbreken terwijl geërfde ACE's behouden blijven, of regels creëren met FileSystemAccessRule. Met -Erbij betrekken, -Uitsluiten, -Filter y Get-ChildItem -Recurse, je kunt de scope heel precies afstellen en natuurlijk testen met -Wat als vóór het aanvragen.

Vergeet niet de strategie voor het opslaan en herstellen van DACL's met ICACLS voor een snelle terugdraaiing:

icacls C:\ruta\* /save C:\acl-backup\ACL_backup.txt /T

icacls C:\ruta\ /restore C:\acl-backup\ACL_backup.txt

Maak versiebeheer van die back-ups als je van plan bent om meerdere wijzigingen in verschillende fasen door te voeren.

Dit complete arsenaal aan tools – ACL-concepten, overerving en evaluatievolgorde; identiteiten en SID's; ICACLS/TAKEOWN; PowerShell Get-Acl/Set-Acl; SetACL voor NTFS en het register – stelt u in staat om machtigingen consistent te definiëren, toe te passen en te documenteren . Door recursie, doordachte overerving en testen met -WhatIf- of DACL-backups te combineren, zult u merken dat zelfs grote implementaties beheersbaar en probleemloos worden.

ntfs
Gerelateerd artikel:
Tutorial: NTFS-machtigingen beheren in Windows