Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Setup-User für Installation ohne Admin (https://www.delphipraxis.net/185055-setup-user-fuer-installation-ohne-admin.html)

hoika 11. Mai 2015 18:07

Setup-User für Installation ohne Admin
 
Hallo,

Bezugnehmend auf das hier:
http://stackoverflow.com/questions/2...r-using-delphi

schwebt mir folgendes vor.
Der Admin startet das Admin-Setup-Programm (als Windows-Admin).
Es wird ein Windows-User angelegt, der zwar nicht Admin ist, aber installieren darf, nennen wir ihn mal Setup-User.

Beim nächsten Programm-Update kann der Nutzer ein User-Setup-Programm starten.
Dort rufe ich per RunAs (API-Befehl fällt mir gerade nicht ein) mit dem Setup-User das eigentliche Innosetup-Programm auf.

Ist das Szenario denkbar.
Angeblich macht das ein (Mit)-Bewerber so.


Danke
Heiko

himitsu 11. Mai 2015 18:12

AW: Setup-User für Installation ohne Admin
 
Andere installieren sich einen Updateservice, der die nötigen Rechte hat.

So oder so muß dein Setup/Updater ordentlich geschützt sein, da er ja automatisch alle Rechte besitzt, um die Programmdateien zu ändern.





Alternativ einen Setup-User erstellen, der nicht die vollen Adminrechte bekommt, sondern nur Installrechte auf einen bestimmten Bereich bekommt.
Und wenn das Setup startet nimmt der User dann im UAC nicht den Administrator, sondern jenen Setup-User, gibt dessen Passwort ein und fertig.

Der schöne Günther 11. Mai 2015 18:19

AW: Setup-User für Installation ohne Admin
 
Zitat:

Zitat von himitsu (Beitrag 1301106)
einen Setup-User erstellen, der nicht die vollen Adminrechte bekommt, sondern nur Installrechte auf einen bestimmten Bereich bekommt.

Wie geht denn so etwas? Wahrscheinlich ist mein Weltbild zu simpel, aber ich dachte es sei so einfach wie "Admin ja/nein". Und nichts dazwischen.

Popov 11. Mai 2015 18:21

AW: Setup-User für Installation ohne Admin
 
Ich kann dir paar allgemeine Beobachtungen nennen, die allerdings nicht richtig sein müssen.

Unter Windows gibt es standardmäßig den Administrator und Standardnutzer mit eingeschränkten Rechten.

Bin ich Standardnutzer und versuche ein Programm mit RunAs in einem Administrator-Konto zu starten, so gibt es zwei Möglichkeiten:
- das Konto ist nicht Kennwortgeschützt: es steht für RunAs nicht zur Verfügung
- das Konto ist Kennwortgeschützt: es steht für RunAs zur Verfügung

Bin ich ein Administrator und versuche ein Programm mit RunAs in einem Standard-Konto zu starten, so gibt es keine Möglichkeiten:
- das Standard-Konto steht für RunAs nicht zur Verfügung

Ob es da weitere Möglichkeiten gibt, kann ich nicht sagen. So sieht es aber im Explorer mit RunAs aus.


//Edit:

Eine weitere Beobachtung (ist mir gerade eingefallen). Ich weiß nicht mehr ganz welches Programm es war, ich glaube Opera, die hat es in etwa so gemacht: zuerst wird das Programm mit Adminrechten installiert. Dann wird das Programm mit einem Update-Parameter oder ein extra Update-Programm im Aufgabenplaner von Windows eingetragen. Dort kann man die Aufgabe mit einem bestimmten Konto ausführen, also auch mit Adminrechten. Ich kenne mich mit dem Aufgabenplaner auch nicht so besonders aus, auch kann ich mich nicht mehr erinnern wie Opera das machte, beim Start oder zwischendurch, aber gelegentlich meldete das Programm, dass es ein Update fährt. Und da es im Aufgabenplaner mit Adminrechten ausgeführt wurde, klappte auch das Update.

himitsu 11. Mai 2015 18:42

AW: Setup-User für Installation ohne Admin
 
z.B. Hier im Forum suchenXP Usermanager
oder eines der vielen Rechte-Tutorials
  • Es gibt Gruppen, die besitzen gewisse Privilegien (Rechte etwas tuen zu dürfen)
  • Es gibt Benutzer, denen sind eine/mehrere meherere Gruppen zugeordnet, deren Priviledien sie erben
  • Man kann einem Adminsitrator oder der Administatorengruppe auch alle Privilegien nehmen und sie dem Gast vermachen
  • Und schon kann der Gast alles machen und der Admin darf nix.



http://www.a-m-i.de/tips/winsec/secu_teil2.php
...

Dalai 11. Mai 2015 18:46

AW: Setup-User für Installation ohne Admin
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1301107)
Zitat:

Zitat von himitsu (Beitrag 1301106)
einen Setup-User erstellen, der nicht die vollen Adminrechte bekommt, sondern nur Installrechte auf einen bestimmten Bereich bekommt.

Wie geht denn so etwas? Wahrscheinlich ist mein Weltbild zu simpel, aber ich dachte es sei so einfach wie "Admin ja/nein". Und nichts dazwischen.

Das geht ziemlich einfach: Nutzer erstellen, in die Gruppe der Benutzer oder gar nur Gäste aufnehmen (eben möglichst wenig allgemeine Rechte) und die NTFS-Zugriffsrechte des gewünschten Verzeichnisses so setzen, dass der gerade erstellte Benutzer dort volle Rechte oder zumindest Schreibrechte hat.

MfG Dalai

himitsu 11. Mai 2015 18:53

AW: Setup-User für Installation ohne Admin
 
Im Grunde muß man ihm garkeine Gruppe zuweisen.

Der schöne Günther 11. Mai 2015 18:57

AW: Setup-User für Installation ohne Admin
 
Vielleicht habe ich nicht aufmerksam genug gelesen, aber: "Kein Admin, aber Schreibrechte in einem bestimmten Verzeichnis" deckt doch noch lange nicht "Anwendung installieren" ab, oder? Dazu kommen doch noch Registry-Einträge unter HKLM wie die "Installierten Programme" in der Systemsteuerung und all das.

Dalai 11. Mai 2015 19:14

AW: Setup-User für Installation ohne Admin
 
Zitat:

Zitat von himitsu (Beitrag 1301112)
Im Grunde muß man ihm garkeine Gruppe zuweisen.

Äh, da haste recht.

Zitat:

Zitat von Der schöne Günther (Beitrag 1301113)
Vielleicht habe ich nicht aufmerksam genug gelesen, aber: "Kein Admin, aber Schreibrechte in einem bestimmten Verzeichnis" deckt doch noch lange nicht "Anwendung installieren" ab, oder? Dazu kommen doch noch Registry-Einträge unter HKLM wie die "Installierten Programme" in der Systemsteuerung und all das.

Es geht laut hoika in erster Linie um Updates einer bestehenden Installation. Aber auch das ist machbar. Die Rechte auf Dateien und Verzeichnisse lassen sich analog auch auf Registry-Zweige setzen, siehe SetACL.

MfG Dalai

Sir Rufo 11. Mai 2015 19:16

AW: Setup-User für Installation ohne Admin
 
Schreib dir einen Dienst, der dieses Update-Gedöns für dich regelt, vom Prüfen über Download bis hin zur Installation.

Für die Kommunikation kannst du einen kleinen REST-Server (oder etwas ähnlich kleines smartes) integrieren, der auf folgende Kommandos hört:
  • /check/<AppID>
  • /update/<AppID>
Tja und dann macht der Service das, was ich den gefragt habe.

Die Informationen, wo was für die Anwendung zu finden ist, trägt am Besten das Setup der Anwendung selber in die Registry (HKLM) (oder wo auch immer - Hauptsache, dort kann nur der Administrator - der User, der installieren darf - schreiben). Der Dienst schaut dann einfach an dieser Stelle nach.

Da so ein Update idR unbeaufsichtigt laufen kann, braucht man auch keine Anzeige.

hoika 11. Mai 2015 21:05

AW: Setup-User für Installation ohne Admin
 
Hallo,

danke für die vielen Antworten ;)

Das das mit einem Dienst am einfachsten ist, sagt auch MS.
Das ist für mich aber am schwierigsten, da habsch doch keene Ahnung net ;)

Ich werd mich mal belesen.

Danke


Heiko

mm1256 11. Mai 2015 21:06

AW: Setup-User für Installation ohne Admin
 
Hallo,

ich will euch ja den Spass an der Sache nicht verderben, aber ihr verliebt euch meiner bescheidenen Meinung nach etwas zu sehr in technische Details. Mal angenommen der Kunde/Anwender hat 10 solcher Programme installiert (was ja nicht viel ist) und ebensoviele Updatedienste mit dazugehörigen Usern werkeln tagaus tagein vor sich hin und updaten irgendwelche Programme. Was ist das? Genau....

Gut, schuld an solchen Überlegungen ist letztendlich auch Microsoft. Da wird bis ins Kleinste definiert was User dürfen und nicht dürfen, wie sie auf Ordner/Dateien/Ressourcen zugreifen dürfen usw. aber für ein einheitliches Updaten der Programme gibt es keine Regeln. Darum kocht jeder sein eigenes Süppchen. Ich bin wirklich gespannt, ob und wann sich die MS'ler dazu noch was einfallen lassen.

Bei meinem Installer entscheidet der Kunde/Anwender/Administrator (wer immer die SW installiert) während der Installation ob, wann, und wie oft er die Software updaten möchte. Das ist natürlich eine von SW zu SW unterschiedlich zu handhabende Angelegenheit. Darum muss das jeder individuell für sich selber regeln. Der Updatejob kommt dann gleich bei der Installation in den Scheduler und wird von Windows nur gestartet wenn es erforderlich ist. Verbraucht demzufolge auch nur Ressourcen wenn ein Update läuft....und dürfte darum auch im Sinn des Anwenders sein. Und vielleicht hat MS den Scheduler sogar für diesen Zweck gemacht???

Popov 11. Mai 2015 21:22

AW: Setup-User für Installation ohne Admin
 
Zitat:

Zitat von hoika (Beitrag 1301130)
Das das mit einem Dienst am einfachsten ist, sagt auch MS.
Das ist für mich aber am schwierigsten, da habsch doch keene Ahnung net ;)

Vielleicht ist das am elegantesten, aber wie gesagt, installiere dir Opera und guck mal wie der es mit dem Update im Aufgabenplaner macht. Einfacher als sein Programm im Scheduler mit Adminrechten ausstatten geht kaum. Dann noch eine Parameterabfrage in das eigene Programm mit dem Schlüssel /u für Updateprüfung einfügen und fertig ist die Laube.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 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