AGB  ·  Datenschutz  ·  Impressum  







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

Benutzer einer Datei herausfinden

Ein Thema von AnyKey · begonnen am 11. Mär 2010 · letzter Beitrag vom 18. Apr 2010
Antwort Antwort
Seite 1 von 2  1 2      
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#1

Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 10:58
Hi,

wie kann man den Benutzer einer Datei auslesen, also den Ersteller oder den, der sie zuletzt bearbeitet hat? Ich hoffe mal das dass nicht zu Umständlich herauszufinden ist.

Hoffe es kann jemand helfen

Gruß
AnyKey
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 11:43
Soweit ich weiß, kann man nur den Besitzer herausfinden. Windows merkt sich nicht, wer eine Datei erstellt oder zuletzt bearbeitet hat. Den Besitzer kann man auch noch nachträglich ändern.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#3

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 11:51
Ah ok, der Besitzer würde mir denke ich auch schon weiterhelfen

Wie kann ich den Besitzer herausfinden, hat vielleicht jemand ein kleines beispiel?

Gruß
AnyKey
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#4

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 11:56
schau mal bei den Schweizern
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 12:10
Das Beste ist, dass es fehlerhaft ist und es nie bemerkt wurde?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#6

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 12:27
@Dezipaitor: Versteh deine frage nich so ganz.

Wie oben schon gesagt, der Benutzer der die Datei erstellt hat reicht mir eigentlich schon, ich will so eine Art statistick damit aufbauen, da soll dann halt z.B. drinn stehen so viel Dateien in dem Verzeichnis sind von Name1 so viel von Name2 usw. das ist der Hintergedanke dabei, nur brauch ich ja dafür dann die Erstellernamen ^^

Gruß
AnyKey
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#7

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 12:30
Zitat von Dezipaitor:
Das Beste ist, dass es fehlerhaft ist und es nie bemerkt wurde?
Das ist mal eine aussagekräftige Fehlerbeschreibung.
Wo liegt der Fehler?

Habe die Funktion mal kurz ausporbiert und sie scheint mindestens bei mir problemlos zu funktionieren.
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 13:03
Ich musste es schnell schreiben, weil ich zum Mittagessen gegangen bin.

Wo ist das Problem? Der Vorteil von statischen Tests ist, dass man, im Gegensatz zu dynamischen Tests, Fehler entdecken kann, die sonst entweder unentdeckt bleiben oder nur sehr schwer und aufwändig zu entdecken wären.
  • Die Speichergrößen (1024) kann zu klein oder viel zu groß sein für einen SecurityDescriptor. Sobald jemand den Code erweitert, um mehr als nur den Besitzer zu erfahren kann das zu einem Problem werden. Der SD wird in einem zusammenhängenden Speicherblock geschrieben, und z.B. ACL Strukturen können bis zu 64kb groß werden, so dass es nicht mehr funktioniert. Also sollte man GetFileSecurity zweimal aufrufen, damit man die richtige Größe erfährt.
    Fast dasselbe gilt für LookupAccountSid.
  • "GetMem(OwnerSID, SizeOf(PSID));" wird verwendet, was völliger blödsinn ist, da GetSecurityDescriptorOwner den Zeiger eh ändert auf die Speicheradresse des Owners innerhalb von SecDescr. Der Autor gibt am Ende diese Variable nicht frei, weil er vermutlich Zugriffsfehler bekommen hat, denn der Speicher wird ja schon mit "FreeMem(SecDescr);" freigegeben. Ergo hat man ein Leak und sollte diese Funktion auf große Ordner angewendet werden, kommt es schnell zu einem Speicherproblem.
  • Und dann die Auflistung von GetMem:
    Delphi-Quellcode:
      GetMem(SecDescr, 1024);
      GetMem(OwnerName, 1024);
      GetMem(DomainName, 1024);
      try
        ...
      finally
        FreeMem(SecDescr);
        FreeMem(OwnerName);
        FreeMem(DomainName);
      end;
    Wenn GetMem nicht genug Speicher allokieren kann, dann wirft es eine EOutOfMemory Exception. Geschieht das z.B. beim dritten Aufruf von GetMem so werden die vorangegangenen Speicherallokationen nicht freigegeben. Ziemlich schlecht bei Speicherknappheit oder?
  • ADD: Ach ja, eben gesehen : Wenn die Besitzer SID nicht in einen Namen aufgelöst werden kann, dann schlägt LookupAccountSid mit ERROR_NONE_MAPPED fehl und damit die gesamte Funktion. Dies kann vorkommen, wenn man z.B. Dateien von anderen Systemen verwendet.
  • Es gibt noch ein paar andere Kleinigkeiten (z.B. var statt out), die aber nicht so schlimm sind. Daher lasse ich sie aus.


Wie du siehst, kann man durch logisches Denken oftmals mehr Fehler finden, als durch Tests. Ich will aber Tests nicht kleinreden. Im Gegenteil. Nur die Kombination von mehreren Testarten führt zur kleinsten Fehlerrate.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#9

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 14:05
Naja das ist irgendwie meist so bei Code aus dem Netz hab ich schon öfters gehabt das da was gefehlt hat oder so, ist mir jetzt beim ersten drübergucken aber auch nicht gleich aufgefallen.

Wenn ich also die Funktion so wie du sagst umschreibe würde ich mein Ziel damit erreichen?! Gäbe es sonst überhaupt noch eine alternative?

Also die Dateien/Ordner liegen auf einem Fileserver, jetzt will ich da halt die Ersteller auslesen um wie schon gesagt eine Statistik anfertigen zu können. Dazu lese ich beispielsweise auch die Datei/Ordnergröße aus, was aber schon funktioniert.

Danke für eure Hilfe, wenn ich nicht weiter komme oder so meld ich mich einfach wieder

Gruß
AnyKey
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: Benutzer einer Datei herausfinden

  Alt 11. Mär 2010, 14:53
http://blog.delphi-jedi.net/2010/03/...ng-file-owner/
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
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 10:04 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