Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
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 Attributes | Objekt-Attribute können angesehen werden (read-only, hidden,…) |
| Write Attributes | Objekt-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 |
| Delete | Objekte 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 Permission | Objektberechtigungen können geändert werden |
| Take Ownership | Der Objektbesitz kann übernommen werden. |
| Synchronize | Das 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
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:
| Berechtigung | Bezeichnung in Powershell | |
|---|---|---|
| FullControl | FullControl | |
| Traverse Folder / Execute File | ExecuteFile | |
| List Folder / Read Data | ReadData | |
| Read Attributes | ReadAttributes | |
| Read Extended Attributes | ReadExtendedAttributes | |
| Create Files / Change Data | CreateFiles | |
| Create Folders / Append Data | AppendData | |
| Write Attributes | Write Attributes | |
| Write Extended Attributes | WriteExtendedAttributes | |
| Delete Subfolders and Files | DeleteSubfoldersandFiles | |
| Delete | Delete | |
| Read Permissions | ReadPermissions | |
Darüber können die essentiellen Berechtigungen auch über Berechtigungs-Sätze vergeben werden:
| Berechtigungs-Satz | umfasst folgende Berechtigungen | Bezeichnung in Powershell |
|---|---|---|
| Read | List Folders / Read Data | Read |
| Read Atributes | ||
| Read Extended Attributes | ||
| Read Permissions | ||
| Write | Create Files / Write data | Write |
| Create Folders / Append Data | ||
| Write Attributes | ||
| Write Extended Attributes | ||
| Read and Execute | Traverse Folder / Execute File | ReadAndExecute |
| List Folders / Read Data | ||
| Read Attributes | ||
| Read Extended Attributes | ||
| Read Permissions | ||
| Modify | Traverse Folder / Execute File | Modify |
| 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 |

