Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Es klemmt: DACL einer Datei ersetzen

  Alt 20. Aug 2010, 07:02
Du rufst auch SetNamedSecurityInfo völlig falsch auf
Da wird garnicht SecurityAttributes verwendet, sondern nur Owner, Group, DACL und SACL. Nimm SetFileSecurity, wenn du mit ACLs experimentieren willst (die Funktion ist veraltet).
Ja, das war zu umständlich, kam noch vom Erstellen der Datei mit CreateFile. Jetzt verwende ich nur die DACL und damit kann ich die Datei auf ein NULL-DACL setzen.
Ist das in Ordnung so? Denn da würde ich jetzt weiter machen und die DACL mit anderen Einstellungen füttern. Dann hätte ich (endlich) die Möglichkeit Dateien zu erstellen oder zu ändern. Mit Verzeichnissen müsste das dann ja analog gehen.
Delphi-Quellcode:
  SecurityDescriptor : TSecurityDescriptor;
  locDACL : PACL;
  filename : PAnsiChar;
  errcode : integer;
begin
  InitializeSecurityDescriptor(@SecurityDescriptor,SECURITY_DESCRIPTOR_REVISION);

  SetSecurityDescriptorDacl(@SecurityDescriptor, true, nil, false);

  locDACL := SecurityDescriptor.Dacl;

  filename := PAnsiChar('C:\schrott.txt');

  errcode:=SetNamedSecurityInfoA(filename, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, locDACL, nil);

  if errcode <> 0 then
  begin
    ShowMessage(SysErrorMessage(errcode));
  end;
end;
Grüße, Messie

Geändert von messie (20. Aug 2010 um 07:04 Uhr)
  Mit Zitat antworten Zitat