![]() |
Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Hi DP,
ich wollte Fragen wie man überprüft, ob man zum Zugriff auf einen Ordner Adminrechte benötigt, und wenn ja, ob man diese auch hat? MfG xZise |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
hmm es müsste eigentlich sicher eine API geben wodurch du dir die sicherheitseinstllungen einses ordners anschauen kannst.
dann musst du nur noch den aktuellen benutzernamen ermittlen und schauen ob er die nötigen rechte hat was einfacher aber radikaler wäre: Mit CreateFile oder so versuchen eine datei mit schreibrechten anzulegen => Fehler = keine rechte |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Die AccessControlList (ACL) bestimmt wer welche Rechte auf einen Ordner hat.
Ein Administrator hat nur den Vorteil, dass er sich Rechte daran verschaffen kann, indem er den Besitz des Ordners übernimmt. Denn der Besitzer kann immer die ACL anpassen und sich Rechte verschaffen. Oder meinst du Vista? In Vista ist das MandatoryLevel eingeführt worden. Ordner besitzen ein zusätzliches Level, welches Niedrig, Normal und Hoch sein kann. Benutzer und dessen Prozesse (der Explorer), die selbst ein solches Level haben, können nur auf Daten zugreifen, die ein Level gleich oder kleiner besitzen. Dieses Level kann derzeit nur über die Kommandozeile geändert werden - sry, habe aber den Befehl vergessen. Glaube es war irgendwas mit iacacls oder so. Wenn du tatsächlich überprüfen willst, welche Rechte ein Ordner hast, dann kann ich nur die Msdn und die Funktion "GetFileSecurity" empfehlen. Es ist leider etwas kompliziert und erfordert Zeigermanipulation auf C-Ebene, jedoch nicht unmachbar. Am einfachsten ist es, indem du versuchst mit CreateFile (siehe MSDN) den Ordner zu öffnen. Glaube man muss das BACKUP_SEMANTICS Flag (oder so) darauf ansetzen, um ein Handle zum Ordner zu bekommen. Wenn der Versuch fehlschlägt, wegen Rechteproblem, dann sollte GetLastError den Wert 5 haben (Access denied). |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
So
![]() |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Okay, dann werde ich wohl CreateFile benutzen :) Das scheint am besten zu gehen.
Übrigens sagt der Benutzername (zumindest ab WinXP) nichts mehr darüber aus, ob man Zugriff hat, weil man könnte die Anwendung ja als Admin ausführen lassen ;) |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Das hat der Benutzername noch nie. Oder steht irgendwo geschrieben, dass nur Benutzer mit dem Namen Administrator administrative Rechte haben können?
|
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Man kann den Benutzer Administrator auch umbenennen.
Was man nicht umbenennen kann ist die Gruppe Administratoren. Zumindest habe ich keine Möglichkeit gesehen, oder man muss irgendwo tief in der Registry das machen. Rechte die ein Benutzer oder Gruppe hat, wird durch Privilegien beschrieben. Mit "secpool.msc" kann man die Privilegien ändern. Die Privilegien haben jedoch keinen großen Einfluss auf ein Dateisystem. Also welche Dateien der Benutzer ansehen darf oder auch nicht. Viel mehr ist es die DACL, die bestimmt, wer was darf. Im Moment sehe ich nur zwei Privilegien, die einen indirekten Einfluss auf das Dateisystem haben und ein Privileg was direkt beeinflusst: Indirekter Einfluss, da normalerweise nicht aktiv : 1. SeTakeOwnerShipPrivileg - Übernehmen eines Objekt als neuer Besitzer. Nur der Benutzername ist als neuer Besitzer erlaubt (mit Ausnahmen). 2. SeRestorePrivileg - Beliebige Benutzer können als neuer Besitzer übernommen werden Direkter Einfluss, da normalerweise aktiv: 1. SeChangeNotifyPrivilege - Wenn aktiv, reicht es aus, dass man auf eine Datei zugriff hat, auch wenn ein übergeordnetes Objekt dies verhindert. So ist es zum Beispiel möglich nur eine Datei für einen Benutzer freizugeben und ihm den direkten Pfad zu übermitteln, ohne dass dieser andere Dateien lesen oder sehen kann. |
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Zitat:
Was ich meine, und dabei niemand langweilen wollte ist, Zitat:
|
Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Jetzt verstehe ich garnet mehr was du willst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 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-2025 by Thomas Breitkreuz