Benutzer-Werkzeuge

Webseiten-Werkzeuge


powershell:system:acls

Dies ist eine alte Version des Dokuments!


NTFS-Berechtigungen und ACLs

NTFS-Berechtigungen

Bei NTFS-Berechtigungen gibt einfache und erweiterte Berechtigungen. Man kann jede Berechtigung auf „Allow“ oder „Deny“ setzen.

Der folgende Powershell-Befehl listet alle Berechtigungen auf:

[system.enum]::getnames([System.Security.AccessControl.FileSystemRights])

Einfache Berechtigungen

Berechtigung Auswirkung
Full Controll Objekte können hinzugefügt, geändert oder entfernt werden (auch die Objekteinstellungen). Zusätzlich können die Berechtigungen für untergeordnete Objekte geändert werden
Modify Objekte können hinzugefügt, geändert oder entfernt werden (auch die Objekteinstellungen).
Read & Execute Objekte (und ihre Eigenschaften) sind sichtbar, Dateien können geöffnet und ausgeführt werden (auch Skripte)
Read Objekte und ihre Einstellungen sind sichtbar
Write Objekte können angelegt und geändert werden.

Erweiterte Berechtigungen

Berechtigung Auswirkung
Traverse Folder/Execute File In einer Struktur \\KEINE_BERECHTIGUNG_VORHANDEN\BERECHTIGUNG_VORHANDEN können die untergeordneten Verzeichnisse geöffnet werden, obwohl in dem übergeordneten Objekt Rechte fehlen. Auch ausführbare Dateien können geöffnet werden. Diese Berechtigung greift nur, wenn die berechtigte Gruppe der Benutzer _nicht_ die „Bypass Traverse Checking“ Berechtigung im Group-Policy-SnapIn hat.
List Folder / Read Data Der Verzeichnisinhalt ist sichtbar und Dateiinhalte können gelesen werden
Read AttributesObjekt-Attribute können angesehen werden (read-only, hidden,…)
Write AttributesObjekt-Attribute können geändert werden
Read Extended Attributes Erweiterte Objektattribute können eingesehen werden (Berechtigungen, Zeitstempel)
Write Extended Attributes Erweiterte Objektattribute können bearbeitet werden
Create Files / Write Data (nur an Verzeichnissen) Dateien können in diesem Verzeichnis angelegt, geändert und überschrieben werden.
Create Folders / Append Data (nur an Verzeichnissen) Verzeichnisse können angelegt werden. Dateien können geändert werden, vorhandene Inhalte aber nicht entfernt oder überschrieben
DeleteObjekte können gelöscht werden. Auch ohne diese explizite Berechtigung können Objekte gelöscht werden, wenn am übergeordneten Verzeichnis die Berechtigung „Delete Subfolders and Files“ besteht
Read Permissions Objektberechtigungen können gelesen werden
Change PermissionObjektberechtigungen können geändert werden
Take Ownership Der Objektbesitz kann übernommen werden. :!: Der Besitzer an eines Objekts kann kann die Objektberechtigungen auch ändern, wenn er nicht über diese Berechtigung verfügt
SynchronizeDas Objekt kann synchronisiert werden. Dadurch wird ein Prozess initialisiert, der auf einen bestimmten Zustand des Objekts wartet. Diese Berechtigung existiert nicht im ACL-Editor.

Vererbung

NTFS-Berechtigungen können entweder an dem Objekt selbst gesetzt (explicit) oder vom übergeordneten Objekt geerbt (inherited) worden sein.
Die Hirarchie der gesetzten Berechtigungen ist dabei wie folgt:

  • Explizit am Objekt verboten
  • Explizit am Objekt erlaubt
  • geerbtes verboten
  • geerbtes erlaubt

Ein explizites „verboten“ würde also ein geerbtes „erlaubt“ überschreiben.

ACLs

ACLs lesen

Das erste Powershell-Commandlet zur verwaltung von Berechtigungen ist Get-Acl; es listet alle Objekt-Berechtigungen.

get-acl .\acl_test\ |fl 

get-acl

ACLs übertragen

Besitz an Quelle und Ziel ist Voraussetzung.

get-acl \\path\to\source  | Set-Acl \\path\to\target 

NTFS-Berechtigungen setzen

Das Powershell-Commandlet Set-Acl ändert den Security-Descriptor eines Objekts (Datei, Verzeichnis, Reg-Key, …). Anders ausgedrückt „es ändert die Berechtigungen“. Im folgenden Beispiel wird dem Benutzer „Username“ Vollzugriff auf das Verzeichnis „\\path\to\target“ gewährt:
:!: Die Berechtigung wird nicht hinzugefügt, sondern bestehende Berechtigungen werden ersetzt

$acl = Get-Acl \\path\to\target 
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("DOMAIN\Username","FullControl","Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl \\fs1\shared\sales

Andere Berechtigungen können der Tabelle entnommen werden:

BerechtigungBezeichnung in Powershell
FullControlFullControl
Traverse Folder / Execute File ExecuteFile
List Folder / Read Data ReadData
Read AttributesReadAttributes
Read Extended AttributesReadExtendedAttributes
Create Files / Change DataCreateFiles
Create Folders / Append Data AppendData
Write AttributesWrite Attributes
Write Extended AttributesWriteExtendedAttributes
Delete Subfolders and FilesDeleteSubfoldersandFiles
DeleteDelete
Read PermissionsReadPermissions

Darüber können die essentiellen Berechtigungen auch über Berechtigungs-Sätze vergeben werden:

Berechtigungs-Satzumfasst folgende BerechtigungenBezeichnung in Powershell
ReadList Folders / Read DataRead
Read Atributes
Read Extended Attributes
Read Permissions
WriteCreate Files / Write dataWrite
Create Folders / Append Data
Write Attributes
Write Extended Attributes
Read and ExecuteTraverse Folder / Execute FileReadAndExecute
List Folders / Read Data
Read Attributes
Read Extended Attributes
Read Permissions
ModifyTraverse Folder / Execute FileModify
List Folders / Read Data
Read Attributes
Read Extended Attributes
Read Permissions
Create Files / Write data
Create Folders / Append Data
Write Attributes
Write Extended Attributes
Delete
powershell/system/acls.1596099661.txt.gz · Zuletzt geändert: 2024/05/27 08:35 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki