![]() |
Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen (XP)
Moin,
ich habe ein Problem, das offensichtlich nur unter XP auftritt. Ein Programm erstellt im Administratormodus ein Verzeichnis und eine Textdatei in "Gemeinsame Dokumente" (Mit AssignFile). Wenn nun aber ein eingeschränkter user in diese Datei (einfaches Logfile, mit AssignFile, Reset und Append) schreiben möchte, knallt es (I/O 103). Dabei ist Folgendes merkwürdig: das Programm wird laut Manifest als "AsInvoker" gestartet, das sollte also der Datei auch die niedrigst möglichen Rechte für andere user mitgeben. Unter Vista lief es in unseren Tests problemlos (da wurde nur die Datei, nicht aber das Verzeichnis angelegt). Ist das ein Problem von XP? Oder gibt es ein Problem mit Filemode? Das sieht doch aber nach den Zugriffen von Prozessen, nicht von usern oder liege ich da falsch? Nebenbei versuche ich gerade die Rechte auszulesen, das ist aber gar nicht so leicht so dass ich noch kein Ergebnis habe :? Das Programm wird in Delphi 6 gepflegt. Grüße, Messie Edit: kann man irgendwie die DACL löschen, nachdem die Datei erstellt wurde? |
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Das ist schon okay so, denn ein Benutzer soll ja nicht eine Datei eines anderen Benutzers einsehen dürfen (oder sogar löschen).
Die Frage ist, was willst du einen anderne Benutzer erlauben? Soll der andere Benutzer lesen dürfen? Oder soll er auch schreiben dürfen. Letzteres könnte ein Sicherheitsrisiko darstellen (z.B. weil die Datei durch ein Virus ersetzt wird). Eine NULL-DACL erlaubt für alle den vollen Zugriff. MS rät davon tunlichst ab. Ich kann mich erinnern, dass es in der JCL eine Funktion gibt, die das macht. Mit der JWSCL geht es auch einfach: ![]() |
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Zitat:
Zitat:
Die JWSCL schaue ich mir mal an. Hoffentlich läuft das auch mit D6. Das müsste ja die ganzen API-Sachen kapseln, oder? Grüße, Messie |
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Zitat:
Lies mal, was Raymond Chen, ein langjähriger MS Mitarbeiter, dazu ![]() Du machst nämlich genau das was Chen anprangert. Dein Programm schreibt als Administrator die Datei in "Gemeinsame Dokumente" und gibt diese Datei für alle frei. Chen listet diese Problempunkte auf, die daraus resultieren:
Du siehst, dass du im Begriff bist ein Sicherheitslücke zu entwickeln! Zitat:
![]() D6 wird ![]() |
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Zitat:
Ich starte das Programm als AsInvoker, also das niedrigste verfügbare Rechtelevel. Nach dem was ich weiß, ist das unabhängig vom Login-Status als Administrator. Wieso sind dann Dateien, die das Programm schreibt, mit einem Mal wieder Admin-Dateien? :gruebel: Deshalb steht das hier auch in API: ich muss irgendwie rausbekommen, mit welchen Rechten tatsächlich geschrieben wird. Da es unter Vista (ohne das Löschen des DACL!) geht, scheint bei XP etwas schief zu gehen... Grüße vom verwirrten Messie |
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Ich habe mich darauf bezogen.
Zitat:
|
Re: Gemeinsame Dokumente:Zugriffsrechte setzen und erkennen
Zitat:
![]() Es steht nämlich nicht deutlich drin, dass das execution level unter XP ignoriert wird. Bleibt immer noch die Frage, warum Dokumente nicht von verschiedenen usern mit Schreibzugriff genutzt werden dürfen. Dafür war "Gemeinsame Dokumente" doch eigentlich gedacht... Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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