![]() |
Re: Sicherheitseinstellungen von Dateien ändern
Hi,
wo nun weiter, mit LookUpAccountName / LookUpAccountSID oder mit GetAce, GetLengthSid, GetAclInformation? Gruß oki |
Re: Sicherheitseinstellungen von Dateien ändern
GetAce, GetLengthSid, GetAclInformation? brauchen wir um die Infos weiter auslesen zu können. Nur bekomm ich immer die Meldung "security descriptor does not contain...", egal bei welcher Datei. Ist das bei dir auch so?
LookUpAccountName / LookUpAccountSID brauchen wir nur füür das GetSecurityDescriptorGroup. Hast du damit schon mal gearbeitet? |
Re: Sicherheitseinstellungen von Dateien ändern
Nachdem ich jetzt wieder versucht habe weiterzukommen, nur alles gescheitert ist (irgendwie hat jede Datei keine ACL), bin ich code mäßig wieder bei dem Stand von letzter Woche. Hat keiner ne Idee, wie ich mit dem AUslesen weiterkommen könnte?
|
Re: Sicherheitseinstellungen von Dateien ändern
Hallo Christian,
warum ueberpruefst du denn hier
Delphi-Quellcode:
psdc auf SE_DACL_AUTO_INHERITED und SE_DACL_AUTO_INHERITED selbst auf SE_DACL_AUTO_INHERITED?
if (psdc and SE_DACL_AUTO_INHERITED) = SE_DACL_AUTO_INHERITED then Memo1.Lines.Add('SE_DACL_AUTO_INHERITED');
Woher weis ich denn dass man beide auf das selbe pruefen muss! |
Re: Sicherheitseinstellungen von Dateien ändern
mit dem If-Ausdruck wird überprüft, ob ein Bit gesetzt wurde.
Das macht man, indem man eine Zahl (die aus Bits besteht) mit einer anderen Zahl, die nur ein bestimmtes Bit gesetzt hat, verundet. nehmen wir diese Zahl : 1011 und wir wollen das erste Bit von rechts (wir starten beim Zählen mit 0!) herausfinden, ob es gesetzt ist. also 1011 and 0010 = 0010 Das Ergebnis ist genau dieselbe Zahl, die auf der rechten Seite von and steht. Wenn das gesuchte Bit nicht gesetzt ist, so ergibt sich das: 1011 and 0100 = 0000 - da hier eine andere Zahl als die rechts von and als Ergebnis rauskommt, wissen wir, dass das gesuchte Bit nicht gesetzt ist. SE_DACL_AUTO_INHERITED wird übrigens nur gesetzt, wenn automatische Vererbung unterstützt wird. Ist es aktiv, bedeutet es, dass Änderungen automatisch auf Unterobjekte weitergegeben werden, wenn diese erben. P.S. mir ist aufgefallen, dass im obrigen Code nur der Besitzer der Datei ausgelesen wird.
Delphi-Quellcode:
Das müsste eigentlich so gehen:
GetFileSecurity(PChar(FiName),OWNER_SECURITY_INFORMATION,psd,0,dwLen);
Delphi-Quellcode:
Um die ÜberwachungsACL lesen zu können muss man dann eben noch SACL_SECURITY_INFORMATION dazunehmen. Zusätzlich muss man noch das Privileg SE_SECURITY_NAME aktivieren. Das Privileg haben aber nur Administratoren.
GetFileSecurity(PChar(FiName),OWNER_SECURITY_INFORMATION or DACL_SECURITY_INFORMATION,psd,0,dwLen);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz