PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win2k8 - Task setzt falsche Dateiberechtigungen


WhiteVelvet
2012-07-23, 10:51:59
Hallo zusammen,

ich habe ein Script, das mehrere Dateien zu einer ZIP-Datei zusammensetzt. Vorher lief dieses Script auf einer Windows XP Maschine, jetzt läuft es seit einigen Tagen auf einem Windows Server 2008. Der Task läuft als ein anderer User, als der der vielleicht gerade angemeldet ist.

Problem: Die erstellte ZIP-Datei hat ganz eigene Dateiberechtigungen, nämlich das System und natürlich den Batchuser, der das Script ausführt. Vorher wurde die ZIP-Datei mit den vererbten Berechtigungen des Verzeichnisses erstellt, jetzt wird das einfach ignoriert. Gehe ich ins Verzeichnis und sage dort "vererbe mir die Berechtingen auf alles unterhalb", dann hat die ZIP-Datei die korrekte Berechtigung. Aber das kann ich ja nicht jedesmal per Hand sagen...

Kann ich irgendwie noch einen Haken oder sowas setzen, damit der Task Dateien mit den übergeordneten Rechten erstellt?

sei laut
2012-07-23, 11:19:35
Ich spekuliere mal, dass das Script unter XP als Admin ausgeführt wurde und unter Win 2k8 mit eingeschränkten (vielleicht nur durch UAC) Rechten.
Ob das aber die Ursache ist, ist wirklich nur geraten.

WhiteVelvet
2012-07-23, 11:41:02
Stimmt, da gibts noch das Häkchen "run with highest privileges"... ich probiers mal.

WhiteVelvet
2012-07-23, 13:24:42
Ne, bringt nichts. Als normaler User sehe ich die ZIP-Dateien nicht, nur als Batchuser direkt auf dem Server.

Hübie
2012-07-23, 14:01:50
Dann schreibe in das script doch den cacls-befehl. Oder hab ich gerade was flasch verstanden?

WhiteVelvet
2012-07-23, 15:20:28
Jau, etwas ;)

Das Problem zusammengefasst: Die erstellte Datei bekommt nicht die Berechtigungen, die es laut dem Verzeichnis vererbt bekommen müsste.

Wenn ich als User eine TXT-Datei anlege, dann hat jeder auf diese Datei Zugriff, der auf das Verzeichnis Zugriff hat.

In diesem Fall erstellt der Task eine ZIP-Datei, die für alle Verzeichnisbenutzer unsichtbar ist, weil nur der Task-User Zugriff die Datei öffnen und bearbeiten darf. Windows Server 2008 scheint hier anders zu agieren als Windows XP.

PatkIllA
2012-07-23, 15:31:09
Die Packer packen oft in einem temporären Ordner und verschieben dann erst nachher. vielleicht verhält es sich da anders.
Du kannst aber im Skript einfach per icacls die Berechtigungen zurücksetzen. Also das was du laut erstem Post schon mal erfolgreich manuell gemacht hast

WhiteVelvet
2012-07-23, 16:46:20
Ja, das könnte klappen :) Danke für den Tipp!

PatkIllA
2012-07-23, 17:05:53
Ja, das könnte klappen :) Danke für den Tipp!
Das ist aber das was Hübie schon gesagt hatte. Ab Vista ist icacls.exe statt cacls.exe aktuell.
Wenn dein Skript die hohen Rechte nicht braucht, dann sollte es auch wieder eingeschränkt laufen.

Hübie
2012-07-23, 19:13:06
Ah ja. icacls.exe ...Alternativ mal im Packer das temp-Verzeichnis auf den aktuellen Ordner in welchen er arbeitet ändern. Wo liegt denn das script? Im Ordner der zu erstellenden Datei??

Lokadamus
2012-07-23, 20:08:16
Kann ich irgendwie noch einen Haken oder sowas setzen, damit der Task Dateien mit den übergeordneten Rechten erstellt?mmm...

Hört sich nach dem doofen "Ich hab die Dateien nicht kopiert, sondern ausgeschnitten" - Problem an. Da gibt es bei Win2k3 schon immer Probleme mit den Berechtigungen.
Das Skript vielleicht so anpassen, dass die Datei in einem anderen Ordner erzeugt wird. Die Datei in den Zielordner kopieren, wodurch sie die richtigen Berechtigungen erhalten sollte und zum Schluß die überflüssige Datei löschen, wenn der Kopiervorgang erfolgreich war.