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