AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Hat Benutzer Schreibrechte (lokal/LAN)?
Thema durchsuchen
Ansicht
Themen-Optionen

Hat Benutzer Schreibrechte (lokal/LAN)?

Ein Thema von MCXSC · begonnen am 24. Nov 2007 · letzter Beitrag vom 19. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 18. Okt 2010, 11:34
Und dann wäre da noch die Sache mit >=Vista und SecurityLevel, das im Code auch nicht geprüft wird. Letztendlich muss man die Datei zum Schreiben öffnen, um kurz Gewissheit zu haben.
Wenn du die Auswirkung der UAC meinst, dann kann ich das aber nicht nachvollziehen. (s. Anhang)
Miniaturansicht angehängter Grafiken
2010-10-18_1125.png   2010-10-18_1130.png  
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dezipaitor

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

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 18. Okt 2010, 13:45
Ich hab den Beispielcode von Matze mal auf unser Netzwerk losgelassen, und er funktioniert so wie er soll.
Mal eben etwas ausprobieren reicht nicht aus, den Code als funktionsfähig zu deklarieren. Ich kenne die Grundlagen zu dem Thema und kann daher die Probleme am Code sehen. Die Fehler durch Tests zu finden ist, wie die Nadel im Heuhaufen. Dass der Code nicht unbedingt im Netzwerk funktionieren muss, findet man schließlich auch nicht so leicht durch Tests heraus. Die Labelsecurity in Vista kommt halt jetzt noch dazu. Die Funktion wird TRUE zurückliefern, wenn ein Objekt eine höheres Integritylabel besitzt als der Nutzer.
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 Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#13

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 18. Okt 2010, 17:38
Hallo,

wärs dann nicht einfacher/besser die dreckige Version zu verwenden, indem man versucht eine Datei zu erzeugen, schlägt dies fehl dann weiss man (vermutet man) dass man keine Schreibrechte hat.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#14

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 18. Okt 2010, 19:19
Folgender Code prüft, ob eine bestehende Datei beschreibbar ist:
Delphi-Quellcode:
function FileIsWriteable(const filename:string):Boolean;
var
   hnd: THandle;
begin
   hnd := CreateFile(PChar(filename), GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
   Result := hnd <> INVALID_HANDLE_VALUE;
   if Result then
      CloseHandle(hnd);
end;
Um zu prüfen, ob man in einem Verzeichnis eine neue Datei erzeugen kann,
also ob man Schreibrechte in einem Verzeichnis hat,
muss man einfach versuchen eine Datei zu schreiben.
Man sollte eine Dateiendung verwenden, die sonst nicht benützt wird (.tmp, .$$$).
Wenn man Pech hat, kann man die temporäre Datei erzeugen, aber danach nicht mehr löschen.
Das kommt aber relativ selten vor.
Andreas
  Mit Zitat antworten Zitat
Dezipaitor

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

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 19. Okt 2010, 00:24
Also eigentlich sollte man es so machen. CreateFile hat doch noch irgendwo so ein temporary Flag, so dass die Datei gelöscht wird, sobald alle Handles geschlossen sind (bin zu faul zum suchen ). Ich würde dann auch alle Share Attribute rausmachen, so dass kein anderer Prozess zwischendrin die Datei öffnen kann. Soll ja nur getestet werden, ob das geht. Gab es nicht auch noch ein Flag für zufällige Namen? (faul )
Wenn das so gemacht wird, dann gibt es auch kein Problem mit dem Löschen, außer die Verbindung reißt ab. Obwohl selbst dann die Datei vom Server automatisch gelöscht werden sollte.

Und dann wäre da noch die Sache mit >=Vista und SecurityLevel, das im Code auch nicht geprüft wird. Letztendlich muss man die Datei zum Schreiben öffnen, um kurz Gewissheit zu haben.
Wenn du die Auswirkung der UAC meinst, dann kann ich das aber nicht nachvollziehen. (s. Anhang)
Ich kann ehrlich gesagt nichts mit den Bildern anfangen. Such mal nach Integrity Level bzw Label im Inet oder hier. Diese Label kann man nur mit icacls anzeigen. Mit UAC haben die aber nicht wirklich etwas zu tun. Das ist nur ein zusätzliches Konzept zur Zugriffsbestimmung zur DACL.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)

Geändert von Dezipaitor (19. Okt 2010 um 00:28 Uhr)
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#16

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 19. Okt 2010, 09:47
Hallo,

wärs dann nicht einfacher/besser die dreckige Version zu verwenden, indem man versucht eine Datei zu erzeugen, schlägt dies fehl dann weiss man (vermutet man) dass man keine Schreibrechte hat.
Für mich ist das nicht "dreckig" sondern die _einzige_ praktikable Lösung. Man ist dann auch nicht auf Vermutungen angewiesen, sondern erhält Vom OS auch einen konkreten Grund weshalb es nicht funktioniert hat.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:33 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