Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Verzeichnisrechte in locked-down environments


4 replies to this topic

fegorsch

fegorsch
  • Full Members
  • 11 posts

Posted 12 October 2011 - 13:52

Hallo,

Schon seit Beginn meines InstallShield Projekts beschäftige ich mich mit der Frage wie man Verzeichnisrechte zuverlässig während eines IS-Setups setzen kann.
Ich weiss das Thema wurde bereits viel diskutiert, aber ich bin bisher auf keine befriedigende Lösung gestoßen.

Mein Szenario:

Ich möchte Lese-, Schreib- und Änderungsrechte für mein Programmverzeichnis (c:\program files\my program, bzw. INSTALLDIR) für die Nutzergruppen "Benutzer", "Authentifizierte Benutzer" und "Administratoren" in einem "locked-down environment" setzen.

Mein Projekttyp ist InstallScript MSI und ich nutze "costum IS handling for security permissions in locked-down environments".

Ein Ausschnit aus "Securing Files, Folders, Registry Keys, and Windows Services in a Locked-Down Environment" aus der IS-Hilfe:

QUOTE

Localized names for SIDs

Traditional Windows Installer handling—Does not support localized names for SIDs; if you try to use a localized name, the installation fails.

New Windows Installer handling, Custom InstallShield handling, and SetObjectPermissions function—Supports localized names for all of the supported well-known SIDs (Administrators, Authenticated Users, Creator Owner, Everyone, Guests, Interactive, Local Service, Local System, Network Service, Power Users, Remote Desktop Users, and Users).


Klingt sehr schön, aber ich habe es bisher nicht zum Laufen gebracht.


Ich bin im Großen und Ganzen auf drei mögliche Ansätze gestoßen, von denen allerdings meines Erachtens nach jeder problematisch ist:

1. Der einfachste Weg: Rechtsklick auf das gewünschte Objekt in "Files and Folders" und dort die Rechte einstellen. So einfach habe ich mir das vorgestellt, funktioniert aber leider nicht für lokalisierte Benutzergruppen, d.h. nur wenn die Gruppe wirklich "Benutzer" und nicht "Users" heisst.
Ich habe auch probiert hier SIDs einzutragen, funktioniert leider auch nicht.


2. Eine InstallScript Funktion schreiben die "SetObjectPermissions" mit SIDs nutzt.

Klappt wunderbar ... auf 32 Bit Systemen, bei 64 Bit führt die Funktion zum 1603 Error.


3. Benutzung von Drittanbietersoftware, wie Microsofts vorinstallierte CACLS / ICACLS / XCACLS, SetAcl o.Ä.

In meinen Augen bedeutet jede Einführung von weiteren Tools in den Installationsprozess eine weitere Baustelle, ob der erzielte Nutzen den Aufwand rechtfertigt ist fraglich. Zudem möchte ich mich ungern mit Lizenzfragen beschäftigen müssen.
Auch die Windowsalternativen haben Probleme, das Kommandozeilentool zum Rechte setzen von XP heisst CACLS, bei Vista und Win 7 ICACLS, ich weiss nicht ob bei Windows 2000 eins existiert und wer weiss wie Name und Syntax des Tools bei Windows 8 sein werden.


Dem Zitat nach sollte doch InstallShield in der Lage sein diese, in meinen Augen für eine Installationsroutine relativ triviale Aufgabe, von Hause zufriedenstellend zu bewältigen, aber wie?
Vielen Dank schonmal für alle Antworten und Lösungsvorschläge.

Viele Grüße,
Felix

Edit:

Bitte um Entschuldigung, versehentlich im falschen Forum gepostet. Bitte nach "InstallShield - InstallScript MSI Projekte" verschieben, vielen dank.

Edited by fegorsch, 12 October 2011 - 14:01.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 October 2011 - 15:26

verschiebe...

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 October 2011 - 15:29

QUOTE
funktioniert aber leider nicht für lokalisierte Benutzergruppen, d.h. nur wenn die Gruppe wirklich "Benutzer" und nicht "Users" heisst.
Dafür gibt's ein hübsches Merge modul hier unter http://installsite.o...s.htm#SIDLookup : Using the LockPermissions Table on Localized Windows Versions
Es liest anhand der SID diverse loakisierte Gruppennamen aus und speichert sie in Properties, die man dann bei den Berechtigungen verwenden kann.

fegorsch

fegorsch
  • Full Members
  • 11 posts

Posted 28 October 2011 - 16:07

Vielen Dank für die Antwort und pardon für meine Verspätete. Das Merge Modul sieht in der Tat perfekt aus um mein Problem zu lösen. In der Zwischenzeit habe ich mich allerdings bereits mit SetACL (www.helgeklein.com) auseinandergesetzt und auch diese Lösung zufriedenstellend zum Laufen gebracht, momentan bin ich leider zu beschäftigt um die Geschichte nochmal umzustellen, werde aber vermutlich in der nächsten Version auf das Merge Modul umsteigen.

Wie erwartet gab es ein paar Stolpersteine auf dem Weg zur Rechtevergabe. Für alle die SetACL einsetzen wollen, und auf diesen Thread stossen, hier meine Größten:


1. Backslashes am Ende von Pfadangaben mag SetACL nicht, diese müssen nochmal escaped werden. InstallShield/MSI properties, die Pfade enthalten, haben einen solchen Backslash, das heisst z.B. Rechte für das Zielverzeichnis setzen:

-on "[INSTALLDIR]\" -ot "file" -actn ...


2. Obwohl auf der Website anders angegeben funktioniert SetACL 2.3 nicht unter Windows 2000, 2.2 allerdings schon.


3. Ich arbeite mit einem InstallScript MSI Projekt und nutze hauptsächlich InstallScript für speziellere Aufgaben, darum bin ich nicht allzu vertraut mit Costum Actions, darum war Folgendes neu für mich:

Die Action Sequenz wird mehrfach durchlaufen, soweit ich das richtig verstanden habe gibt es einen "immediate", einen "deferred" und einen "commit" Durchlauf. "Immediate execution" ist nur für vorbereitende Aufgaben, wie das Setzen und Lesen von Properties gedacht und sollte noch keine Änderungen am System vornehmen.
Solche Änderungen (wie z.B. das Erzeugen von Ordners mit der CreateFolders Action) werden im "deferred" Durchlauf ausgeführt. Darum muss auch die Rechtevergabe, die ja auch bereits erzeugte Ordner angewandt werden muss "deferred" ausgeführt werden.


Jedem der hier reinschaut, viel Erfolg bei der Rechtevergabe.

Gruß, Felix

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 November 2011 - 17:18

QUOTE
Die Action Sequenz wird mehrfach durchlaufen
Ja, gewissermaßen:
http://installsite.o...00108/index.htm
Installationsphasen und Einstellungen zur In-Script-Ausführung für benutzerdefinierte Aktionen in Windows Installer