AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows Rechte unter NTFS (2000-Vista) vererben
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Rechte unter NTFS (2000-Vista) vererben

Offene Frage von "cytrinox"
Ein Thema von cytrinox · begonnen am 15. Mär 2007 · letzter Beitrag vom 15. Mär 2007
Antwort Antwort
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Windows Rechte unter NTFS (2000-Vista) vererben

  Alt 15. Mär 2007, 09:19
Hi,

Ich möchte über Delphi für ein bestimmtes Verzeichnis für die Gruppe "Jeder" alle Rechte setzen (GENERIC_ALL oder ähnliches).

Delphi-Quellcode:
procedure AddFileSecurity (const fileName, userName : string);
var
  f : TNTFileObject;
  acl : TAccessControlList;
begin
  acl := Nil;
  f := TNTFileObject.Create(fileName);
  try
    acl := TAccessControlList.Create;
    f.GetDiscretionaryAccessList(acl);

    acl.AddElement(TAccessControlElement.Create(userName, aeAccessAllowed, (CONTAINER_INHERIT_ACE or OBJECT_INHERIT_ACE), GENERIC_ALL));
    f.SetDiscretionaryAccessList(acl);
  finally
    acl.Free;
    f.Free;
  end
end;

Setz ich damit für das Verzeichnis C:\test die Rechte werden diese auch für das Verzeichnis übernommen, allerdings nicht für die Unterverzeichnisse sowie Dateien. D.h. Die Gruppe "Jeder" ist nur für C:\Test gesetzt, die Unterverzeichnisse haben immer noch die selben Rechte (Admin, SYSTEM usw..)

Ich muss zugeben dass ich in dem ganzen Rechtemanagement von Windows nicht richtig durchblick, ich vermute mal dass die Flags für die Rechten so nicht korrekt sind.

Zum Setzen der Rechte benutze ich die Komponente von http://www.wilsonc.demon.co.uk/d6ntutils.htm

Was ich eigentlich brauch ist was altbekanntes aus der UNIX-Welt: 'chmod -R 777 C:\test'

Vielleicht hat sich hier ja schonmal jemand mit diesem grausigen Thema befasst
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Windows Rechte unter NTFS (2000-Vista) vererben

  Alt 15. Mär 2007, 14:30
Hallo,

ich würde es so versuchen:
TAccessControlElement.Create(userName, aeAccessAllowed, (CONTAINER_INHERIT_ACE or OBJECT_INHERIT_ACE or SUB_CONTAINERS_AND_OBJECTS_INHERIT), GENERIC_ALL) Allerdings ist ab W2K die Reihenfolge der ACE innerhalb der ACL wichtig!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr.
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