Einzelnen Beitrag anzeigen

cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Windows Rechte unter NTFS (2000-Vista) vererben

  Alt 15. Mär 2007, 09:19
Hi,

Ich möchte über Delphi für ein bestimmtes Verzeichnis für die Gruppe "Jeder" alle Rechte setzen (GENERIC_ALL oder ähnliches).

Delphi-Quellcode:
procedure AddFileSecurity (const fileName, userName : string);
var
  f : TNTFileObject;
  acl : TAccessControlList;
begin
  acl := Nil;
  f := TNTFileObject.Create(fileName);
  try
    acl := TAccessControlList.Create;
    f.GetDiscretionaryAccessList(acl);

    acl.AddElement(TAccessControlElement.Create(userName, aeAccessAllowed, (CONTAINER_INHERIT_ACE or OBJECT_INHERIT_ACE), GENERIC_ALL));
    f.SetDiscretionaryAccessList(acl);
  finally
    acl.Free;
    f.Free;
  end
end;

Setz ich damit für das Verzeichnis C:\test die Rechte werden diese auch für das Verzeichnis übernommen, allerdings nicht für die Unterverzeichnisse sowie Dateien. D.h. Die Gruppe "Jeder" ist nur für C:\Test gesetzt, die Unterverzeichnisse haben immer noch die selben Rechte (Admin, SYSTEM usw..)

Ich muss zugeben dass ich in dem ganzen Rechtemanagement von Windows nicht richtig durchblick, ich vermute mal dass die Flags für die Rechten so nicht korrekt sind.

Zum Setzen der Rechte benutze ich die Komponente von http://www.wilsonc.demon.co.uk/d6ntutils.htm

Was ich eigentlich brauch ist was altbekanntes aus der UNIX-Welt: 'chmod -R 777 C:\test'

Vielleicht hat sich hier ja schonmal jemand mit diesem grausigen Thema befasst
  Mit Zitat antworten Zitat