Tags: Dateisystem, Rechteverwaltung
Zuweilen kommt es vor, dass Windows sich hartnäckig weigert, bestimmte Dateien zum Löschen freizugeben. Das geschieht etwa nach dem Löschen von Benutzerprofilen: Hatte der Benutzer Rechte für seine Dateien und Verzeichnisse individuell vergeben und dabei die für Administratoren und das System entfernt, sind diese für den Administrator zunächst nicht löschbar. Selbst wenn es das betreffende Benutzerkonto gar nicht mehr gibt, sind die ACLs mit dessen UID/GID noch mit der Datei verbunden.
Ähnlich ist es mit Hinterlassenschaften nicht komplett deinstallierter Programme: Sie gehören eventuell weder dem Administrator noch dem System, sondern unter Vista, Windows 7 und Windows Server 2008 (R2) einem Dienst namens „TrustedInstaller“, und zwar diesem allein.
Eigentum übernehmen und Rechte setzen
In diesen Fällen muss der Administrator nicht löschbare Dateien zunächst in sein Eigentum überführen und die Rechte entsprechend setzen, um sie anschließend löschen zu können. Rekursiv funktioniert dies in einer Eingabeaufforderung mit Administratorrechten weitaus reibungsloser und mit weniger Aufwand als in der Explorer-GUI.
Zunächst kann man sich mittels des Kommandos whoami
versichern, dass man wirklich als Administrator angemeldet ist. Dann übernimmt man per
takeown /f ‹Verzeichnisname› /r /d y
den Besitz des fraglichen Verzeichnisses. Die Parameter hinter dem Verzeichnisnamen sorgen dafür, dass der Befehl rekursiv durch alle Unterverzeichnisse läuft und alle Prompts, ob deren Besitz dabei ebenfalls übernommen werden soll, positiv beantwortet werden. Per Design übernimmt man den Besitz immer selbst. Abweichend davon kann man mittels
/a
festlegen, ihn der Administratoren-Gruppe zu übertragen. Auch kann man nach dem Parameter /u
einen abweichenden Benutzerkontext angeben, in dem der Befehl laufen soll.
Mittels
icacls ‹Verzeichnisname› /grant Administratoren:F /t
erteilt man dann der Administratoren-Gruppe alle Rechte aus dem Verzeichnis (hier sorgt /t
für die rekursive Anwendung) und kann zu guter Letzt mittels
rd /s /q ‹Verzeichnisname›
löschen.
Lokalisierten Benutzer-und Gruppennamen ermitteln
Der Befehl icacls
funktioniert etwa auf einem englischsprachigen Windows nicht wie oben angegeben – hier heißt die entsprechende Gruppe „Administrators“ und behält diesen Namen auch, wenn Windows mittels eines installierbaren Sprachpakets auf eine andere Anzeigesprache umgestellt wurde. Mit Hilfe von
whoami /groups
kann man im Zweifel innerhalb der Eingabeaufforderung feststellen, wie die korrekten Namen für den Administrator beziehungsweise die Administratoren-Gruppe auf einem System sind.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Ordner freigeben mit PowerShell
- NTFS-Berechtigungen über Gruppenrichtlinien anpassen
- BAYOOSOFT Berechtigungsaudit: Vollständige Analyse aller Zugriffsrechte auf Dateien und Verzeichnisse
- FolderSecurityViewer 2.0: Reports für Verzeichnis- und Freigaberechte, Owner und User-Berechtigungen
- Test: Verzeichnis- und Freigabe-Berechtigungen analysieren mit dem (kostenlosen) FolderSecurityViewer
Weitere Links