C:\WINDOWS\TEMP und die Tücken von Programme der Kategorie „es war einmal“

Es waren einmal die Zeiten in denen man in C:\WINDOWS\TEMP einfach mal eine Datei anlegen konnte und jeder darauf zugreifen konnte.
Seit Windows Vista hat sich ja einiges getan was Sicherheit betrifft, besonders auch die Rechtevergabe auf Dateien, die im C:\Windows\Temp Ordner angelegt werden.

Ein Programm  im Rentenalter (es ist gerade mal so um die 16 Jahre alt 😉 geschätzt) erzeugte in C:\WINDOWS\TEMP eine Datei, mit der bestimmte Zugriffe abgesichert wurden. Darunter auch wenn mehrere Instanzen des Programms auf einem Rechner liefen. Das funktionierte prima. Die Datei wurde unter einem festen Namen angelegt und nicht entfernt, nachdem das Programm beendet wurde.

Seit Vista gibt es aber nun ein kleines Problem.:
Seit Windows Vista darf in C:\WINDOWS\TEMP immer noch jeder User Dateien erzeugen. Auf diese Dateien hat er auch vollen Zugriff. Aber auf diese Dateien hat kein anderer Nutzer mehr Zugriff… 😮 … und selbst ein Admin muss erst hier erst den Besitz übernehmen, wenn er die Datei nicht erzeugt hat.

Und nun hat diese kleine alte Programm den folgenden Effekt:

  • Benutzer A meldet sich an.
  • Benutzer A startet das Programm Er arbeitet damit und die temporäre Datei wird in C:\WINDOWS\TEMP angelegt.
  • Benutzer A meldet sich ab und beendet das Programm.
  • Benutzer B meldet sich an.
  • Benutzer B startet das Programm und … bekommt eine Fehlermeldung mit einem „Access denied!“.

Mit den neuen Rechten, die auf dem C:\WINDOWS\TEMP Verzeichnis liegen, kann der zweite Benutzer auf diese Datei nicht mehr zugreifen auf die eben nur der Erzeuger Zugriff hat, und der ist eben Benutzer A.

PS: Es Frage mich keiner warum C:\WINDOWS\TEMP aus GetWindowsDir und angehängtem Text TEMP zusammengesetzt wurde. Vermutlich um zu umgehen, dass ein privates temporäres Verzeichnis benutzt wird. Tja und CSIDL_APPDATA war dem damaligen Entwickler (evtl. noch unter Windows 3.1) nicht bekannt.

Der Tod der Power User…

Nein, es ist kein neuer Horror-Thriller im Kino. Und wir beklagen auch nicht den tragischen Tod einer aktiven Gruppe von Nutzern meiner Software.

Die Gruppe Hauptbenutzer/Power User habe ich gerne auf benutzt um erweiterte Rechte für Entwickler zu geben. Ein Entwickler war damit eben kein Administrator, aber zumindest hatte er Schreibzugriff auf HKEY_LOCAL_MACHINE oder eben auch auf C:\Programme.
Installationen waren damit dann auch kein Problem. Auch zu Hause habe ich meinen Kiddies auch gerne dieser Gruppe zugeordnet. Admin’s waren sie dann keine, aber sie hatten weitgehende Freiheiten.

Wir finden die Hauptbenutzer/Poweruser Gruppe zwar noch in der Benutzer- und Gruppenverwaltung mit dem Kommentar: „Hauptbenutzer sind eingeschlossen aus Gründen der Rückwärtskompatibilität, sie besitzen eingeschränkte administrative Rechte“! Aber das stimmt nicht!

Die Hauptbenutzer/Poweruser Gruppe ist endgültig aus allen Vorgaben in Vista verschwunden.
In den Benutzerrechten für die Registry und C:\Programme finden sich keine vorgefertigten Einträge mehr. Einen Benutzer zum Power User zu machen hat keinen Effekt mehr. Ja schlimmer noch, ein Hauptbenutzer ist nun nicht mal mehr mit Rechten der Gruppe Benutzer ausgestattet.
Wenn, müsste eben selber Hand anlegen. Aber wer will das schon, also machen wir alle ehemaligen Hauptbenutzer zu Administratoren… ob das wohl der Weisheit letzter Schluss ist 😉

Die Power User fristeten ja sowieso schon immer ein nur begrenzt unterstütztes Dasein. Ich hatte mich schon immer geärgert, dass sie nicht automatisch über die Domänen verwaltbar waren. Hier gibt es eben nur Unterstützung für Domänen-Admins, Domänen-Benutzer, Authenifizierte Benutzer etc.

Nun denn… lasst uns trauern, jetzt haben Sie alle unter Vista das Zeitliche gesegnet.