Announcement

Collapse
No announcement yet.

Unter NT den Besitzer/Berechtigungen einer Datei auslesen/setzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unter NT den Besitzer/Berechtigungen einer Datei auslesen/setzen

    Hallo,

    wie kann man unter Delphi5 und NT den Besitzer eines Files auslesen bzw. den Besitz übernehmen ?
    Wie verändere ich die Berechtigungen eines Files ?

    Danke für eure Mühe

  • #2
    hallo,

    kann dir leider nicht weiterhelfen. ich hoffe nur das du das problem schon gelöst hast.denn ich habe ein ähnliches problem. wäre nett wenn du deine eventuellen infos zu dem thema mir zukommen lassen könntest.

    suche ne api funktion die mir von einem ntnutzerx und einen pfady, die rechte des nutzers auf diesen pfad wiedergibt.(lese, oder schreibrechte usw.)

    Danke im Vorau

    Comment


    • #3
      Hallo, ich hab auch mal danach gesucht und folgendes gefunden:
      ursprünglich von Terry Clark

      // When you create a file or directory, you become the owner of it.
      // With GetFileOwner you get the owner of a file.

      function GetFileOwner(FileName: string;
      var Domain, Username: string): Boolean;
      var
      SecDescr: PSecurityDescriptor;
      SizeNeeded, SizeNeeded2: DWORD;
      OwnerSID: PSID;
      OwnerDefault: BOOL;
      OwnerName, DomainName: PChar;
      OwnerType: SID_NAME_USE;
      begin
      GetFileOwner := False;
      GetMem(SecDescr,1024);
      GetMem(OwnerSID,SizeOf(PSID));
      GetMem(OwnerName,1024);
      GetMem(DomainName,1024);
      try
      if not GetFileSecurity(PChar(FileName),
      OWNER_SECURITY_INFORMATION,
      SecDescr,1024,SizeNeeded) then
      Exit;
      if not GetSecurityDescriptorOwner(SecDescr,
      OwnerSID,OwnerDefault) then
      Exit;
      SizeNeeded := 1024;
      SizeNeeded2 := 1024;
      if not LookupAccountSID(nil,OwnerSID,OwnerName,
      SizeNeeded,DomainName,SizeNeeded2,OwnerType) then
      Exit;
      Domain := DomainName;
      Username := OwnerName;
      finally
      FreeMem(SecDescr);
      FreeMem(OwnerName);
      FreeMem(DomainName);
      end;
      GetFileOwner := True;
      end;

      procedure TForm1.Button1Click(Sender: TObject);
      var
      Domain, Username: string;
      begin
      GetFileOwner('YourFile.xyz',domain,username);
      ShowMessage(username + '@' + domain);
      end;

      // Note: Only works unter NT

      Comment

      Working...
      X