Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wer hat welche Berechtigungen in einem Verzeichnis (https://www.delphipraxis.net/17094-wer-hat-welche-berechtigungen-einem-verzeichnis.html)

Luckie 28. Feb 2004 06:40


Wer hat welche Berechtigungen in einem Verzeichnis
 
Ich wollte ermitteln welcher Benutzer Schreib- und Leserechte in einem angegebenen Verzeichnis auf NT ff. Systemen hat. Sprich, ich gebe ein Verzeichnis an und bekomme zurück, wer lesend und wer schreibend darauf zugreifen kann.

Ich habe hier schon nach Hier im Forum suchenACL gesucht, nur weiß ichnicht so recht, ob da was passendes bei ist, weil ich auch noch gra nicht weiß, wie ich das anpacken soll. Brauche ich da SID's, XYZID's oder was auch immer und wie würde das Vorgehen aussehen.

Edit1: Im SwissDelphiCenter habe ich auchn ichts brauchbares gefunden.
Edit2: Ziel ist es ein Programm zu schreiben, um sein System auf Lücken zu untersuchen, was die Vergabe von Rechten angeht. Eventuell das ganze auch andersrum, dass man der Benutzer angibt und eine Liste bekommt3 aufwelche Verzeichnisse er wie zugreifen kann.

Sharky 28. Feb 2004 06:59

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Hai Luckie,

ich bin mir nicht ganz sicher ob Dir das hilft, aber suche mal im PSDK nach FSCTL_SECURITY_ID_CHECK. Eventuell hilft dir das weiter.

Luckie 28. Feb 2004 07:19

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Nein, es muss irgendwas mit GetSecurityInfo sein. damit bekomme ich wohl eien DACL für das Objekt (Datei). Nur wie geht es dann weiter? Besser ist für mich wohl noch GetFileSecurity, da es mir ja nur um Dateien geht.

Luckie 28. Feb 2004 15:24

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Liste der Anhänge anzeigen (Anzahl: 1)
Auf SysInternals habe ich genau das Programm gefunden, was das macht, was ich will, sogar mit Source. Nur leider steige ich bei dem C/C++ Gewusel einfach nicht durch. ich weiß noch nicht mal wo was anfängt bzw. in welcher Reihenfolge ich mir welche Infos holen muss um an die Berechtigungen dranzukommen.

Ich hänge es mal an.

Luckie 28. Feb 2004 22:31

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
So, in einem WinAPI Forum wurde mir jetzt etwas weitergeholfen: http://www.c-plusplus.de/forum/viewt...=469825#469825

Ich versuche das gerade in Code umzusetzten:
Delphi-Quellcode:
uses
  AclAPI;


procedure TForm1.Button1Click(Sender: TObject);
var
  psd: PSECURITY_DESCRIPTOR;
  dwLen: DWORD;
  psdc: SECURITY_DESCRIPTOR_CONTROL;
  dwDummy: DWORD;
  DaclPresent, DaclDefaulted: LongBool;
  dacl: PACL;
  aclinfo: PAclInformation;
begin
  dwLen := 0;
  psd := nil;
  GetFileSecurity('c:\boot.ini', DACL_SECURITY_INFORMATION, psd, 0, dwLen);
  psd := AllocMem(dwLen);
  try
    if GetFileSecurity('c:\boot.ini', DACL_SECURITY_INFORMATION, psd, dwLen,
      dwLen) then
    begin
      GetMem(dacl, sizeof(PACL));
      try
        if GetSecurityDescriptorDacl(psd, DaclPresent, @dacl, DaclDefaulted) then
        begin
          if GetAclInformation(PAdacl, ) then
          begin
          end;
        end;
      finally
        Freemem(dacl, sizeof(PACL));
      end;
    end;
  finally
    FreeMem(psd, dwLen);
  end;
end;
Aber es will nicht so recht. PAclInformation kennt er nicht und hier:
Delphi-Quellcode:
if GetAclInformation(dacl, ) then
sagt er mir jetzt schon:
Zitat:

[Fehler] Unit1.pas(54): Inkompatible Typen: '_ACL' und 'PACL'
Ich bräuchte da mal eure Hilfe. :cry:

NicoDE 1. Mär 2004 22:38

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Zitat:

Zitat von Luckie
PAclInformation kennt er nicht

Versuche es mit den Win32API-Paket von Marcel van Brakel (http://www.delphi-jedi.org/APILIBRARY / http://members.chello.nl/m.vanbrakel2/).
Zitat:

Zitat von Luckie
Zitat:

[Fehler] Unit1.pas(54): Inkompatible Typen: '_ACL' und 'PACL'

Die mir bekannten AclAPI/AccCtrl.pas von Borland sind - meiner bescheidenen Meinung nach - unvollständig bis unbrauchbar (je nach Delphi-Version).

The-X 4. Mär 2004 15:05

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
ist der Datentyp PACL ein Pointer auf ein Record?
Zwar ne dumme Frage, ist mir aber auch schon des öfteren passiert ;)

Luckie 4. Mär 2004 15:17

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Hier fängt es im MSDN an http://msdn.microsoft.com/library/de...lesecurity.asp und der Link aus dem c++-Forum beschreibt, wie man wohl vorgehen müsste.

Markus K. 4. Mär 2004 15:46

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Hi Luckie,
den ersten Parameter bei GetAclInformation musst du glaub ich so schreiben:
Delphi-Quellcode:
GetAclInformation(dacl^,)
Dann müsste die Fehlermeldung eigentlich weg sein :gruebel: weiß es aber nicht genau.

Tschüß Markus

The-X 4. Mär 2004 15:49

Re: Wer hat welche Berechtigungen in einem Verzeichnis
 
Genau das meinte ich ja mit dem "Pointer auf einen Record"...
und aus der MSDN seite wurd ich (leider) net schlauer :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz