AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Überprüfen, ob Adminrechte zum Zugriff auf Ordner
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen, ob Adminrechte zum Zugriff auf Ordner

Ein Thema von xZise · begonnen am 6. Okt 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 10:13
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#2

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 11:27
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
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 11:29
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).
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 13:28
So http://www.michael-puff.de/Developer...ileAccess.html könntest du schon mal überprüfen, ob du die Rechte hast, die du benötigst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 13:37
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 13:41
Das hat der Benutzername noch nie. Oder steht irgendwo geschrieben, dass nur Benutzer mit dem Namen Administrator administrative Rechte haben können?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#7

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 14:02
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.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 15:37
Zitat von Luckie:
Das hat der Benutzername noch nie. Oder steht irgendwo geschrieben, dass nur Benutzer mit dem Namen Administrator administrative Rechte haben können?
Das ist ja schon fast Haarspalterei !

Was ich meine, und dabei niemand langweilen wollte ist,
Zitat:
dass ein Benutzer ohne administrative Rechte auf dem Betriebssystem, mithilfe des Befehls "Ausführen als..." einen Programm administrative Rechte in einer Umgebung ohne administrative Rechts starten kann. Die Fähigkeit administrative Rechte an ein Programmm zu übergeben in einer nicht adiministrativen Umgebung ist mindestens seit Widnows XP verfügbar.
Ich hoffe mal, jetzt ist klar was ich meine!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#9

Re: Überprüfen, ob Adminrechte zum Zugriff auf Ordner

  Alt 6. Okt 2007, 16:59
Jetzt verstehe ich garnet mehr was du willst.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  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 19:09 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