COOPWARE © Coopware 2007

Contens

reset tree

RegACL Details

RegACL.exe erlaubt das Setzen von Zugriffsrechten in der Windows Registry auf Kommandozeilenebene (Batchbetrieb). Getestet ist das Programm derzeit für Windows XP.


Parameter von RegACL

RegACL.exe wird derzeit mit folgenden Parametern aufgerufen:

  1. Zum Setzen von Zugriffsrechten:
    RegACL.exe "rkey" /grant list
    Das Format der Liste (list) ist hier group=rights (z.B: RegACL "HKLM\SOFTWARE\Windows\Help" /grant S=f A=f P=rw)
  2. Zum Wegnehmen von Zugriffsrechten:
    RegACL.exe "rkey" /remove list
    Das Format der Liste (list) ist hier groups (z.B: RegACL "HKLM\SOFTWARE\Windows\Help" /remove S A P)
  3. Zum Auslesen der Zugriffsrechte:
    RegACL.exe "rkey" /export /l:logfile
    (z.B: RegACL "HKLM\SOFTWARE\Windows\Help" /export /l:c:\tmp\RegACL.log)
  4. Punkt 1 und 2 können auch über eine Steuerdatei ausgeführt werden, falls mehrere Schlüssel bearbeitet werden sollen:
    RegACL.exe /f:configfile /l:logfile
    (z.B: RegACL /f:c:\tmp\RegACLList.txt /l:c:\tmp\RegACL.log)
    Das Format der Steuerdatei ist:
    ; --- Steuerdatei für RegACL.exe
    "HKLM\Software\TEST" /grant S=f A=f P=f U=f E=f
    "HKLM\Software\TEST" /remove E
"rkey" muß immer von Anführungszeichen eingeschlossen sein. Die vergebenen Zugriffsrechte sind additiv und werden automatisch auf untergeordnete Schlüssel der Registry vererbt.

rkey Gibt den zu bearbeitenden Schlüssel (incl. Hive) in der Registry an Gültige Werte für den Hive sind: HKCR, HKLM, HKCU, HKU
groupsGibt Benutzergruppen an, für die die Zugriffsrechte geändert werden S=System, A=Administratoren, P=Hauptbenutzer, U=Benutzer, E=Jeder
rightsGibt die Art der Zugriffsrechte an (generische) f=GENERIC_ALL, w=GENERIC_WRITE, r=GENERIC_READ

Alle Aktionen des Programms können über den Schalter /l:logfile aufgezeichnet werden


Beispiele für die Verwendung von RegACL

Folgende Beispiele veranschaulichen die Verwendung von RegACL.exe:

  1. RegACL.exe "HKLM\SOFTWARE\Windows\Help" /grant S=f A=f P=w U=r
    Hinzufügen von Vollzugriff für System und Administratoren, Schreibzugriff für Hauptbenutzer und Lesezugriff für Benutzer
  2. RegACL.exe "HKLM\SOFTWARE\Windows\Help" /remove S A P U
    So wird Beispiel 1 rückgängig gemacht
  3. RegACL.exe "HKLM\SOFTWARE\Windows\Help" /export /l:c:\tmp\RegACL.log
    Die frei vergebbaren Zugriffsrechte werden ausgelesen und in c:\tmp\RegACL.log gespeichert

Technische Details zu RegACL

Das Betriebssystem unterscheided zwischen SACL (System Access Control List) und DACL (Discretionary Access Control List). Die DACL sind ACL die nach eigenem Ermessen zusätzlich zu den SACL vergeben werden können. RegACL.exe setzt nur DACL und läßt die SACL unverändert.

Ein ACL enthält ein oder mehrere ACE's (Access Control Entries). RegACL.exe arbeitet mit der Vergabe von EXPLICIT_ACCESS Strukturen. Eine EXPLICIT_ACCESS Struktur enthält folgende Einträge:

  • grfAccessPermissions Zugriffsrechte wie GENERIC_ALL, GENERIC_READ, GENERIC_WRITE ...
  • grfAccessMode Zugriffsmode wie GRANT_ACCESS, REVOKE_ACCESS, SET_ACCESS, DENY_ACCESS ...
  • grfInheritance Art der Vererbung wie CONTAINER_INHERIT_ACE, INHERIT_ONLY_ACE, NO_PROPAGATE_INHERIT_ACE ...
  • Trustee.Form Art des Trustee (SID oder Name) TRUSTEE_IS_NAME, TRUSTEE_IS_SID
  • Trustee.Type Typ des Trustee TRUSTEE_IS_UNKNOWN, TRUSTEE_IS_USER, TRUSTEE_IS_GROUP
  • Trustee.pstrName SID oder Name des Trustee je nach Trustee.Form

Das Programm hat derzeit folgende Parameter fix eingestellt:

  • grfInheritance = CONTAINER_INHERIT_ACE
  • Trustee.Form = TRUSTEE_IS_SID
  • Trustee.Type = TRUSTEE_IS_GROUP

Tabelle der Zugriffsrechte im Detail:
Zugriffsrecht(e)rwrwf
Vollzugriff       x
Wert abfragen x  xx
Wert festlegen   xxx
Unterschlüssel erstellen   xxx
Unterschlüssel auflisten x  xx
Benachrichtigen x  xx
Verknüpfungerstellen       x
Löschen (DELETE)       x
DAC schreiben (WRITE_DAC)       x
Besitz festlegen       x
Lesekontrolle (READ_CONTROL)xxxx

Das Programm unterstützt derzeit folgende Gruppen:

  • S=System
  • A=Administratoren
  • P=Hauptbenutzer
  • U=Benutzer
  • E=Jeder