AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechte eines Verzeichnis ermitteln

Ein Thema von TUX_der_Pinguin · begonnen am 15. Aug 2011 · letzter Beitrag vom 16. Aug 2011
Antwort Antwort
Seite 1 von 2  1 2      
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

Rechte eines Verzeichnis ermitteln

  Alt 15. Aug 2011, 15:06
Hi,

ich habe zu erst mit Hilfe von Luckies CheckFileAccess http://www.michael-puff.de/Programmi...leAccess.shtml

Und dann mit der JEDI variante probiert.
Delphi-Quellcode:
function CheckAccessToFile(
   DesiredAccess: DWORD; const FileName: WideString): Boolean;
var FileObject : TJwSecureFileObject;
begin
   FileObject := TJwSecureFileObject.Create(FileName);
   try
     result := FileObject.AccessCheck(DesiredAccess);
   finally
     FileObject.Free;
   end;
end;
Jedoch funktioniert beides nicht.

Auf einem Windows 2003 Server R2 befindet sich ein Verzeichnis auf einer Freigabe mit besonderen Rechten für einen Domänen-Benutzer.

Versuche ich jetzt auf einem Rechner (Windows 7 Ultimate oder WinXP SP3) im Netzwerk mit einem lokalen Benutzer
(Benutzername & Passwort ist gleich wie beim Domänen-Benutzer) die Rechte abzufragen bekomme ich
als Antwort das keine Rechte gesetzt sind. Merkwürdig wird es versuche ich die Abfrage auf einem anderen
Unterverzeichnis auf der Freigabe erhalte ich die Informationen über die Rechte.

Abfrage mit lokalem Benutzer
\\server\share\Test <- Keine Rechte
\\server\share\Docs <- Rechte sind gesetzt

Abfrage mit Domänen-Benutzer
\\server\share\Test <- Rechte sind gesetzt
\\server\share\Docs <- Rechte sind gesetzt

Melde ich mich mit dem Domänen-Benutzer an den Rechnern an dann klappt alles und ich erhalte als
Antwort das die Rechte gesetzt sind. Auch wenn mein Programm meldet das keine Rechte gesetzt sind
ins Verzeichnis rein gehen, Dateien erstellen oder löschen usw. ist alles dennoch möglich.

Hat irgendjemand eine Idee was das soll?
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Rechte eines Verzeichnis ermitteln

  Alt 15. Aug 2011, 16:17
Ich habe gerade noch mal mit den Rechten am Server rum gespielt, dabei bin ich auf etwas gestoßen.
Das Verzeichnis \\server\share\Test hat Rechte für 2 Benutzer (Administrator: Vollzugriff und XY: Spezielle Berechtigungen)

Jedoch wird der lokale Benutzer XY auf dem Client nicht als der Domänen-Benutzer XY identifiziert
sondern der Gruppe DOMÄNE\Benutzer zugeordnet, diese Gruppe hat jedoch keinen Zugriff auf das
Verzeichnis. D.h. füge ich den Berechtigungen die Gruppe "Benutzer" hinzu und vergebe die gleichen
rechte wie dem Domänen-Benutzer XY dann funktioniert die Rechte abfrage.

Jetzt stellt sich mir nur die Frage warum wird beim prüfen der Rechte der lokale Benutzer einmal
so identifiziert und wenn ich ganz normal mit dem Windows Explorer auf das Verzeichnis zugreife
dann muss der lokale Benutzer doch als Domänen-Benutzer identifiziert werden weil ich komme ja ins
Verzeichnis hinein und kann dort tun und lassen was ich will.

Ich frag mich nur ob es eine Möglichkeit gibt die Rechte so ab zu fragen als würde man mit dem Explorer
ins Verzeichnis gehen und dort Dateien erstellt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Rechte eines Verzeichnis ermitteln

  Alt 15. Aug 2011, 17:11
Eigentlich ist jeder Benutzer Mitglied in irgendeiner Domäne, und sei es Local oder wie auch immer sie heißt. Des weiteren kann jeder Benutzer gleichzeitig Mitglied in einer beliebigen Gruppe sein, und diese Mitgliedschaft ist nicht zwangsläufig "logisch".
Also Benutzer xyz kann Mitglied bei Dom1\Administrators und Mitglied bei Dom2\Users sein, muß dies aber nicht. und bitte nicht vergessen es handelt sich um domx\xyz. Da es unterschiedliche Schreibweisen für Benutzer und Gruppen gibt, ist das manchmal etwas verwirrend.

Hier findest Du etwas mehr dazu.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 07:36
Das ist mir natürlich klar das ein Benutzer Mitglied in mehren Gruppen sein kann.

Was ich ja einfach nur nicht verstehe ist wieso es einen Unterschied gibt ob ich
die Rechte abfragen möchte oder mit dem Explorer auf das Verzeichnis zugreifen will.

Ich stelle mir das so vor das bei der Rechte abfrage der Client sich mit der eindeutigen UID des
lokalen Benutzers am Server meldet und sagt "gib mir mal die Rechte für UID 1". Da jedoch der
Domänen-Benutzer der genau gleich heißt mit gleichem Passwort jedoch in der Domäne die UID 2 hat.
Es zum Ergebnis kommt das für den Lokalen Benutzer keine Rechte gesetzt sind.

Geht man jedoch mit dem Explorer ins Verzeichnis bekommt der Server nur die Info "hey ich bins XY"
und der Sever sagt "alles klar ich kenne dich als Domäne\XY".

Logisch wäre doch es würde immer gleich gehandhabt so führt das doch nur zu Verwirrungen.

Bzw. gibt es eine Möglichkeit die Rechte so abzufragen wie es auch beim Zugriff des Explorers
geschehen würde?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 09:30
Das ist ein Missversändnis. Hinter jeder Anmeldung steckt genau ein Benutzer (aID?) da ist vollkommen egal welchen Namen/Userid er verwendet. Sobald der Benutzer eingerichtet ist ist er eindeutig identifizierbar, und wenn Du (theoretisch) 10 mal den Benutzer1 einrichtest, so ist dochjeder eindeutig identifizierbar.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 09:36
Das ist ein Missversändnis. Hinter jeder Anmeldung steckt genau ein Benutzer (aID?) da ist vollkommen egal welchen Namen/Userid er verwendet. Sobald der Benutzer eingerichtet ist ist er eindeutig identifizierbar, und wenn Du (theoretisch) 10 mal den Benutzer1 einrichtest, so ist dochjeder eindeutig identifizierbar.

Gruß
K-H
Ja aber genau das meinte ich doch, das der Benutzer "Lokaler-PC\XY" doch nicht 100% gleich zu setzten ist
mit dem Benutzer "Domäne\XY" weil ja die eindeutige Kennung unterschiedlich ist. Ich frage mich ja nur
seit Tagen und Stunden warum bei der Rechte abfrage der Unterschied wichtig ist. Aber wenn ich Dateien
erstellen oder löschen will das völlig egal ist.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 09:40
Das ist ein Missversändnis. Hinter jeder Anmeldung steckt genau ein Benutzer (aID?) da ist vollkommen egal welchen Namen/Userid er verwendet.
Ich glaube, dass was TUX_der_Pinguin meint, ist, dass wenn man z.B. ohne AD arbeitet und auf PC A einen Benutzer A mit Passwort P hat und auch auf PC B auch einen Benutzer A anlegt mit Passwort P Windows trotz unterschiedlicher lokaler Domänen und unterschiedlicher IDs diese in Einklang bringt (Benutzername und Passwort sind gleich --> ist der selber Benutzer).
Kommt jetzt allerdings noch eine echte Domäne ins spiel, scheint es kompliziert zu werden. Gibt es Benutzer A sowohl Lokal als auch in der Domäne (mit dem selben Passwort) greifen die Algorithmen wohl nicht mehr.

So zumindest hab ich es so verstanden.

Gruß, Chris

EDIT:
Zitat:
Ich frage mich ja nur seit Tagen und Stunden warum bei der Rechte abfrage der Unterschied wichtig ist. Aber wenn ich Dateien erstellen oder löschen will das völlig egal ist.
Ich denke, dass hängt mir der Reihenfolge zusammen:
Ist der Angemeldet Benutzer ein Domänenbenutzer --> nein
Ist die Benutzer/Passwort-Kombination die selbe wie von einem Benutzer aus der Domäne --> ja --> Zugriffsrechte gleich setzten mit dem Domänenbenutzer

Sicher bin ich mir da aber nicht. Ich glaube aber das der von mir oben beschriebene Ansatz (ohne Domäne einen User über das Netzwerk erkennen) da mit rein spielt.
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules

Geändert von ChrisE (16. Aug 2011 um 09:44 Uhr)
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 11:12
Wozu das ganze eine kurze Erklärung, vielleicht gibt es ja noch einen ganz anderen Ansatz.

Ich habe eine kleine Anwendung welches Daten in einem Netzwerkverzeichnis sichern soll,
vor jedem Kopiervorgang soll geprüft werden ob eine Datenübertragung möglich ist.

Klar ein einfaches DirectoryExists() würde ja schon reichen, aber nur weil ein Verzeichnis
da ist heißt es ja noch lange nicht das dort auch drin geschrieben werden darf. Tja und bevor
ich jedes mal testweise Verzeichnisse und/oder Dateien anlege nur um zu prüfen ob ich auch in
das Verzeichnis schreiben darf, dachte ich mir so eine Rechteprüfung wäre doch viel eleganter.

Aber das scheint ja doch nicht so einfach zu funktionieren
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 11:26
Aber das scheint ja doch nicht so einfach zu funktionieren
Vielleicht ist auch der Ansatz nicht ganz korrekt. Wenn es stimmt, dass der aktuelle Benutzer <> der Benutzer ist der vom Server als Angemeldet angenommen wird, könnte es doch Besserung bringen, wenn man den Server fragen könnte wie man mit ihm verbunden ist (also mit welchem Benutzer/Domäne). Soweit ich weiß ist, kann sich ein angemeldeter Nutzer unter Windows immer nur mit einer Benutzername/Passwort-Kombination an einem Server "anmelden"/identifizieren
Also müßten man "nur" heraus bekommen, mit welchen Benutzer / Domäne ein der Server in Verbindung bringt und mit diesem führt man dann die Rechtekontrolle durch.

Leider weiß ich nicht wie man das von dem Server heraus bekommt.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Rechte eines Verzeichnis ermitteln

  Alt 16. Aug 2011, 11:36
Das ist mal gar keine so schlechte Idee, ich habe nämlich etwas im Internet gefunden wie ich die Rechte
von einem beliebigen Benutzer ermitteln kann. Diese Routine müsste ich ja nur mit dem Benutzer füttern
mit dem der Server mich authentifiziert.

Jetzt steh ich nur vor dem Problem wie ich an diese Information gelange.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:49 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