Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Adminrechte - wann braucht man sie? (https://www.delphipraxis.net/100209-adminrechte-wann-braucht-man-sie.html)

Master-of-Magic 24. Sep 2007 16:56


Adminrechte - wann braucht man sie?
 
Ich bin gerade dabei, einen kleinen Updater für ein Tool zu schreiben und den auch gleich Vista ready zu machen - was man da alles wissen muss ... :roll:

Der Updater legt ein Updates-Verzeichnis in den eigenen Dateien an (dort liegen auch die Konfigurationsfiles des Tools) und speichert dort die heruntergeladenen Updates ab. Danach werden die alten Files im aktuellen Ordner durch die aktuellen ersetzt. Und da dies nicht überall geht, hab ich ein Manifest eingebunden, damit der Updater Adminrechte bekommt.

Allerdings ist mir beim Testen unter XP gerade etwas aufgefallen: Unter XP funktioniert das manifest ja nicht und der Updater kriegt keine Rechte (eingeschränkter Nutzeraccount) dennoch läuft das Update problemlos.

Warum? Weil der Update-Ordner eh in den Eigenen Dateien liegt -> Schreibrechte und das Tool selbst auf dem Desktop -> auch Schreibrechte. Da das Tool nicht installiert sondern einfach ausgeführt werden kann, frage ich mich gerade: Braucht mein Updater überhaupt erhöhte Rechte?

Denn letztendlich geht es ja um das Ersetzen der alten Dateien. Da da Tool aber von eingeschränkten Usern eh nicht unter "Programme" o.ä. kopiert werden kann, erübrigen sich doch auch Adminrechte beim Update, oder?


Oder gibt es andere Situationen, wo ich doch mehr Rechte brauche?

dominikkv 24. Sep 2007 17:10

Re: Adminrechte - wann braucht man sie?
 
wenn das programm unter C:/Programme liegt braucht es Adminrechte zum schreiben.
es ist egal wo das programm liegt, du brauchst nur adminrechte wenn du in C:\Programme schreiben willst.
Tipp: nenn dein Programm "Updater" oder so (irgendwas mit "Update" drin) dann wird unter vista sowiso Adminrechte benötigt um es auszuführen^^ allerdings wenn das dann wieder vom user umbenannt wird...

xaromz 24. Sep 2007 17:32

Re: Adminrechte - wann braucht man sie?
 
Hallo,

noch ein Tipp: Verwende für Updates nicht den Ordner "Eigene Dateien". Dieser Ordner ist für die Dateien des Users da und für nichts anderes. Benutze doch den Tenmp-Ordner oder erstelle Dir im LocalApp-Ordner einen eigenen Ordner. Ich persönlich schmeiße jedes Programm sofort wieder runter, das mir die Eigenen Dateien zumüllt (BDS ist da die Ausnahme, aber auch gleich ein schlechtes Beispiel, weil da auch noch ein nutzloser englischer Ordner rumliegt, den man aber nicht löschen darf).

Gruß
xaromz

Master-of-Magic 24. Sep 2007 17:46

Re: Adminrechte - wann braucht man sie?
 
Naja, ich hab eigene Dateien bewusst gewählt. Da mein Programm keinen Installer hat, würden sich nur noch die Anwendungsdaten anbieten.

Und ohne Uninstaller halte ich es für unverschämter, irgendwo einen versteckten Ordner (->Anwendungsdaten) zuzumüllen, als einen Ordner in den eigenen Dateien zu verwenden. Weil den kann man leicht entfernen und dort werden auch alle Einstellungen gesichert - nicht nur die temporären Updates. So hat man alle Daten auf einen Blick ;)

Es war halt nur die Frage wegen den Adminrechten ... aber da dominikkv das mit dem Update im Namen erwähnt hat (das Ding heißt "Updater.exe" :wink: ) hat sich die Sache wohl auch erledigt.

SirThornberry 24. Sep 2007 17:50

Re: Adminrechte - wann braucht man sie?
 
Zitat:

Denn letztendlich geht es ja um das Ersetzen der alten Dateien. Da da Tool aber von eingeschränkten Usern eh nicht unter "Programme" o.ä. kopiert werden kann, erübrigen sich doch auch Adminrechte beim Update, oder?
@Master-of-Magic: Deine Logic ist nicht ganz richtig. Zwar kann der normale Nutzer nicht unter ProgramFiles schreiben aber das heißt nicht das der Normale nutzer dann das Programm nicht nutzt oder es dort nicht installiert ist. (sonst könnte der normale Nutzer ja kein Programm nutzen welches installiert werden muss und sich entsprechend einträgt).

Der normale Ablauf ist so das der Administrator ein Programm installiert und es unter dem Programme-Ordner ablegt. Dann setzt er die Rechte entsprechend (wenn nicht schon vorhanden) so das alle Nutzer das Programm ausführen dürfen.

Dementsprechend führen zwar alle dein Programm aus aber in den aktuellen Ordner darf man nur mit entsprechenden Rechten schreiben.

Du müsstest also sicher stellen (wenn deine Theorie greift) das dein Programm sich nur updated wenn es von dem gestartet wird der es installiert hat.

Master-of-Magic 24. Sep 2007 18:05

Re: Adminrechte - wann braucht man sie?
 
[quote="SirThornberry"]
Zitat:

Der normale Ablauf ist so das der Administrator ein Programm installiert und es unter dem Programme-Ordner ablegt. Dann setzt er die Rechte entsprechend (wenn nicht schon vorhanden) so das alle Nutzer das Programm ausführen dürfen.
So gesehen hast du recht. Bei dem Programm gibt es zwar wie gesagt keine Installation, aber zumindest könnte es jemand mit Adminrechten unter Programme verschieben und dann als eingeschränkter Nutzer dort ausführen ...

Dann lass ich das Manifest mal drin ... :|
Kann mir jemand 'nen Tipp geben, wie ich unter XP Adminrechte verlangen kann? Also nur für den Updater versteht sich ...

Meflin 24. Sep 2007 18:06

Re: Adminrechte - wann braucht man sie?
 
Zitat:

Zitat von xaromz
noch ein Tipp: Verwende für Updates nicht den Ordner "Eigene Dateien". Dieser Ordner ist für die Dateien des Users da und für nichts anderes.

Dein Wort in Gottes Ohr. Sag das mal den Leuten von Adobe. Der Dumme Update-Ordner vom Reader (oder warens sogar zwei :gruebel: ) ist da partout nicht wegzubekommen :wall:


Dezipaitor 24. Sep 2007 19:04

Re: Adminrechte - wann braucht man sie?
 
Zitat:

Zitat von dominikkv
wenn das programm unter C:/Programme liegt braucht es Adminrechte zum schreiben.
es ist egal wo das programm liegt, du brauchst nur adminrechte wenn du in C:\Programme schreiben willst.
Tipp: nenn dein Programm "Updater" oder so (irgendwas mit "Update" drin) dann wird unter vista sowiso Adminrechte benötigt um es auszuführen^^ allerdings wenn das dann wieder vom user umbenannt wird...

Das stimmt so nicht ganz.
Administratorrechte sind nicht erforderlich. Man benötigt jedoch ein erhöhtes Integritätslevel, welches man leider nicht über den Explorer einstellen kann, sondern nur über die Kommandozeile. Administratoren haben eben das höchste Level.
Ich verstehe nur einfach nicht, warum man Administrator sein muss, um in der Programmverzeichnis zu schreiben. Es könnte doch so schön einen "kleinen Admin" geben. So verhindert man, dass Programme auch noch ins Windowsverzeichnis schreiben können.

Programme, die den Namen "install", "setup" usw. enthalten, werden von der UAC als Setupprogramme erkannt, die ann einen UAC Dialog bekommen.

SirThornberry 24. Sep 2007 19:44

Re: Adminrechte - wann braucht man sie?
 
@Dezipaitor: Das ist so weil es einige nicht kapieren wollten das man nicht als Admin arbeitet. Und weil die Leute es nicht lassen hat man entschlossen das Admins auch erst Adminrechte haben wenn sie es explizit angeben.

Hansa 24. Sep 2007 23:23

Re: Adminrechte - wann braucht man sie?
 
Mal nebenbei gefragt : hat sich jeder der hier beteiligten schon mal mit Vista ausführlich beschäftigt ? Falls ja : wer ?


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