Einzelnen Beitrag anzeigen

messie

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

Es klemmt: DACL einer Datei ersetzen

  Alt 19. Aug 2010, 19:02
Moin,

nachdem ich mich jetzt einige Zeit mit den Zugriffseinstellungen für Dateien beschäftigt habe, wollte ich mal ein paar Schritte probieren. Im ersten Schritt ein DACL mit einem NULL-DACL überschreiben, später weiter.

Ich scheitere aber schon im ersten Schritt und das könnte ein ANSI/Unicode-Problem sein.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SecurityAttributes : TSecurityAttributes;
  SecurityDescriptor : TSecurityDescriptor;
  filename : PAnsiChar;
  errcode : integer;
begin
  InitializeSecurityDescriptor(@SecurityDescriptor,SECURITY_DESCRIPTOR_REVISION);

  SetSecurityDescriptorDacl(@SecurityDescriptor, true, nil, false);
  SecurityAttributes.nLength := SizeOf(SecurityAttributes);
  SecurityAttributes.lpSecurityDescriptor := @SecurityDescriptor;
  SecurityAttributes.bInheritHandle := false;

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


  errcode:=SetNamedSecurityInfo(filename, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @SecurityAttributes, nil);

  if errcode <> 0 then
  begin
    ShowMessage(syserrormessage(errcode));
  end;
end;
Das ist nach ein paar Tagen : gar nicht mehr so anspruchsvoll, ich bekomme aber die Meldung "Das System kann die angegebene Datei nicht finden".
Daher gehe ich von einem Char-Problem aus, denn wenn ich die Datei mit den obigen SecurityAttributes erstelle, hat sie tatsächlich ein NULL-DACL.

Grüße, Messie
  Mit Zitat antworten Zitat