AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ein Fass nach dem anderen geht auf

Ein Thema von freimatz · begonnen am 14. Nov 2020 · letzter Beitrag vom 19. Nov 2020
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#1

AW: ein Fass nach dem anderen geht auf

  Alt 18. Nov 2020, 12:44
Das hängt z.B. vom Manifest ab (oder vom Dateinamen, wie z.B. "Setup")
Noch so eine Seuche! Stell dir mal vor wie es wäre, wenn eine Setup.exe SELBST nachprüft ob sie Adminrechte (vgl. "su" bei Linux) hat, anstatt ein Pappschild (Manifest) mit der Aufschrift "Bitte liebes System, gib mir mal Adminrechte" vor sich her zu tragen. Und wenns diese Rechte nicht hat, verlangt es danach. Diese Rechte vergäbe der User (bei Linux mit einem "sudo") und nicht das System.

Ein solches Setup würde die Dateien auf die verschiedenen Ordner verteilen und mit den korrekten Zugriffsrechten versehen (geerbt vom sudo aufrufenden Benutzer). Dann wäre es völlig Banane, ob diese Dateien nun in C:\Program Files oder C:\Users\... liegen, dein Programm hätte überall Zugriff darauf.

Damit sind wir nämlich beim entscheidenden Punkt: Bei Windows gibt es inzwischen Instanzen (z.B. SYSTEM) mit höheren Rechten, als jemals ein Anwender erlangen kann. Selbst als Admin stößt du immer wieder auf Dinge, wo dir der "Zugriff verweigert" wird. Ein Unding.

Schreibst du Systemdienste, dann laufen die bei Windows im SYSTEM-Kontext. Schreibst du einen Daemon für Linux, dann läuft der mit genau den Rechten, die ihm auf Dateiebene zugewiesen wurden. Schon mal versucht, mit einem Non-Admin-Programm unter Windows auf Dateien schreibend zuzugreifen, die dein eigener (!!!) Dienst erstellt hat?

Und das ganze wurde nunmal eingebaut, damit alte "schrottige" Programme weiterhin funktionieren, wovon es leider zuviel gab/gibt.
Exakt. Windows NT 3.1 hatte das ursprünglich nicht und IMHO bis NT 5.0 (das gabs wirklich! Irgendwo habe ich noch eine Installation aus 1997 davon) auch nicht. Erst mit Windows 2000 wurde das Sicherheitskonzept abgeschwächt, um die 9x-User rüber zu locken. Ein harter Schnitt wäre damals die bessere Wahl gewesen, den man aus Marketinggründen nicht gewagt hat. Über die Jahre wurde dann ungleich mehr Supportaufwand reingesteckt als nötig gewesen wäre, hätte man es gleich richtig gemacht (ist ja oft so)

Deshalb finde ich es unfair, diesen inkonsistenten Murks den Entwicklern vorzuwerfen, die wie in diesem Fall seit 30 Jahren ein Projekt pflegen und das evtl. schon wie vom TE beschrieben ein eigenes Ökosystem bildet.

Um wieder auf das Eingangsthema zurück zu kommen und mich einigen Vorrednern anzuschließen: Mit Innosetup lässt sich das recht elegant lösen. Es gibt auch grafische IDEs dafür, z.B. Inno Script Studio (kostenlos) oder Install Designer (50 Euro), sodass der Lernaufwand überschaubar bleibt.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: ein Fass nach dem anderen geht auf

  Alt 18. Nov 2020, 13:04
Wie gesagt, das kommt drauf an.

Kleines Beispiel zum Selbstausprobieren:
* neue VCL-Anwendung erstellen und Setup.exe nennen
* in den Projektoptionen das Manifest entfernen (Ohne)
* kompilieren
* und ins Verzeichnis gucken C:\Users\%Username%\Documents\Embarcadero\Studio\Projekte\Win32\Debug
* Es wird im Programm-Icon vom Explorer ein Overlay eingeblendet (das Schutzschild) und beim Start geht der UAC auf
* nun das Manifest wieder aktivieren (Automatisch)
* neu erzeugen
* im Explorer verschwindet das Schutzschild-Overlay und der UAC meldet sich auch nicht mehr
* jetzt im Manifest die Ausführungsebene ändern (Admnistrator erforderlich)
* neu erzeugen
* schon ist UAC und Overlay wieder da, aber nicht wegen dem Namen, sondern weil du es beantragt hast

Emba hat inzwischen das Manifest aufgemotzt und unter Anderem auch die <supportedOS>-Abschnitte aufgenommen, wodurch diese Heuristiken nicht aktiviert werden.



Auch ohne Admin-Manifest kann man auch im Windows sowas selbst machen.
Wie sudo gibt es hier das runas oder auch andere Dinge.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Nov 2020 um 13:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#3

AW: ein Fass nach dem anderen geht auf

  Alt 18. Nov 2020, 14:09
Kleines Beispiel zum Selbstausprobieren:
* neue VCL-Anwendung erstellen und Setup.exe nennen
* in den Projektoptionen das Manifest entfernen (Ohne)
* kompilieren
* und ins Verzeichnis gucken C:\Users\%Username%\Documents\Embarcadero\Studio\Projekte\Win32\Debug
* Es wird im Programm-Icon vom Explorer ein Overlay eingeblendet (das Schutzschild) und beim Start geht der UAC auf
* nun das Manifest wieder aktivieren (Automatisch)
* neu erzeugen
* im Explorer verschwindet das Schutzschild-Overlay und der UAC meldet sich auch nicht mehr
* jetzt im Manifest die Ausführungsebene ändern (Admnistrator erforderlich)
* neu erzeugen
* schon ist UAC und Overlay wieder da, aber nicht wegen dem Namen, sondern weil du es beantragt hast
Lach... Ja das sind so lustige Eigenheiten die mich von Windows vertrieben haben. Ist ein Programm automatisch böser, nur weil es Setup.exe heißt? Warum zeigt sich dieses Verhalten nicht, wenn ich es Malware.exe nenne? Oder umgekehrt, warum wird ein böseres Programm als weniger böse dargestellt, nur weil es nicht Setup.exe heißt? Irgendwie ist das doch eine Mischung aus Pseudosicherheit und Benutzerkomfort.

Gut bei Linux gibt es etwas ähnliches wie das Manifest. Hier wird z.B. eine Datei dadurch zur ausführbaren Datei, dass man ihr ein bestimmtes Dateiattribut gibt. Der Name ist dagegen völlig irrelevant. So kannst du auch reine Textdateien ausführbar machen und das System versucht dann anhand des Dateiinhaltes, die entsprechende Laufzeitumgebung (bash, perl, python u.ä.) zu finden.

Aber wir kommen vom Thema ab. Ich kritisiere ja nur das seltsame Windows-Verhalten, die Sicherheit von bestimmten Ordnern abhängig zu machen. Dann versucht man bei Altprojekten genau das, was der TE beschrieben hat: Anpassung an die Microsoft-Vorgaben. Was bei Altprojekten aber oft schwierig ist und in der Folge mehr als nötig in Ordnern mit weniger Sicherheit landet, eben %APPDATA% usw. Das ja, wie schon richtig bemerkt, in Domänenumgebungen dazu führt, dass die Serverprofile vollgemüllt werden und die Windowsanmeldung ewig dauert, weil erstmal alles gesynct werden muss.

Damit sind wir nämlich beim entscheidenden Punkt: Bei Windows gibt es inzwischen Instanzen (z.B. SYSTEM) mit höheren Rechten, als jemals ein Anwender erlangen kann. Selbst als Admin stößt du immer wieder auf Dinge, wo dir der "Zugriff verweigert" wird. Ein Unding.
Besitzer ändern, fertig...
Das meine ich nicht. Geh mal als Admin in die Systemverwaltung und versuche, gewisse Microsoft-Dienste zu beenden. Keine Chance. Und mir soll keiner erzählen, die wären "systemrelevant".

Schreibst du Systemdienste, dann laufen die bei Windows im SYSTEM-Kontext.
Wenn du das so einstellst, ja. Unsere Dienste laufen nicht alle im System-Kontext, sondern teilweise auch im Benutzerkontext.
Das soll, zumindest was den Desktop-Datenaustausch angeht, demnächst nicht mehr möglich sein. Der Trend geht eher zu Hintergrundprogrammen, die per Taskplaner verwaltet werden. Wieder so eine Baustelle, die sich für die Betreuer von Altprojekten auftun wird.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.910 Beiträge
 
Delphi 12 Athens
 
#4

AW: ein Fass nach dem anderen geht auf

  Alt 18. Nov 2020, 19:01
Lach... Ja das sind so lustige Eigenheiten die mich von Windows vertrieben haben. Ist ein Programm automatisch böser, nur weil es Setup.exe heißt? Warum zeigt sich dieses Verhalten nicht, wenn ich es Malware.exe nenne? Oder umgekehrt, warum wird ein böseres Programm als weniger böse dargestellt, nur weil es nicht Setup.exe heißt?
Es geht doch nicht um gut oder böse. Es wird nur davon ausgegangen, dass eine Setup.exe ohne aktuelles Manifest eventuell Adminrechte benötigt, aber zu alt ist um das passende Manifest zu haben, und deshalb werden diese dann automatisch angefordert. Das geht doch nur darum, dass der Benutzer ältere, nicht für das neue System erstellte, Software weiter nutzen kann.

Eine Setup.exe mit aktuellem Manifest, sprich eine, die für das aktuelle System gemacht wurde, bekommt diese Kompatibilitätsanpassung nicht.

Es hat halt alles Vor- und Nachteile. Bei macOS oder Linux funktioniert ein Tool ggf. einfach ein paar Jahre (oder auch schon bei anderen Distributionen^^) nicht mehr (oft genug selbst erlebt), bei Windows wird es mit der Abwärtskompatibilität dafür schon eher übertrieben. Aber dafür kann man selbst 16-Bit Windows 1.0 Programme noch 35 Jahre später unter Windows 10 32-Bit nutzen... und auch noch ältere MS-DOS Programme funktionieren grundsätzlich noch.

Das meine ich nicht. Geh mal als Admin in die Systemverwaltung und versuche, gewisse Microsoft-Dienste zu beenden. Keine Chance. Und mir soll keiner erzählen, die wären "systemrelevant".
Wo ist da aber der praktische Anwendungsfall? Also wozu sollte man das können?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#5

AW: ein Fass nach dem anderen geht auf

  Alt 19. Nov 2020, 11:21
... bei Windows wird es mit der Abwärtskompatibilität dafür schon eher übertrieben. Aber dafür kann man selbst 16-Bit Windows 1.0 Programme noch 35 Jahre später unter Windows 10 32-Bit nutzen... und auch noch ältere MS-DOS Programme funktionieren grundsätzlich noch.
Das meine ich ja. Irgendwann hat mich diese Mischung aus Kompatibilitätsballast, wiederkehrende Update-Probleme, Microsofts Misstrauen ggü. dem User und das zunehmende "Phoning Home" von Windows vertrieben (privat wie gesagt). Anfangs war es schwierig aber dann machte der harte Cut richtig Spaß. Bei Linux hilft bei störrischen Altprogrammen auch schon mal ein simples Recompile und Linken gegen die aktuellen Bibliotheken. Hängt natürlich stark vom Einzelfall ab. Shellprogramme sind da unkomplizierter als GTK und Qt.

Das meine ich nicht. Geh mal als Admin in die Systemverwaltung und versuche, gewisse Microsoft-Dienste zu beenden. Keine Chance. Und mir soll keiner erzählen, die wären "systemrelevant".
Wo ist da aber der praktische Anwendungsfall? Also wozu sollte man das können?
Warum sollte man das nicht dürfen? Das meine ich mit Misstrauen ggü. dem User. Der praktische Anwendungsfall? Ein Beispiel: Dualboot auf einem betagten Laptop, Windows 10 und Linux Mint 20. Die selbe Maschine läuft mit einer Akkuladung unter Windows 90 Minuten und unter Linux 8,5 Stunden, Leerlauf, einfach nur das nackte System jeweils frisch installiert. Also guckt man, was da die lieben Stromtierchen verscheucht und landet bei diversen Hintergrunddiensten, die man weder braucht noch dass sie für den Systembetrieb (die Hauptaufgabe eines Betriebssystems!) notwendig sind. Mit Bordmitteln sind sie durch Normaluser nicht abschaltbar, muss man mit Fachwissen über die Registry machen. Am Ende läuft das Windows 5 Stunden über den Akku. Und die Moral von der Geschicht: Der alte Rechner ist nicht perse ungeeignet für Windows 10, sondern es ist nur out of the Box viel zu fett und unflexibel. Die Philosophie ist maximaler Funktionsumfang, notfalls um den Preis einer Neuanschaffung. Und die Querverzahnung zwischen den Diensten macht es zunehmend schwerer, daran noch etwas zu ändern, selbst wenn man das notwendige Fachwissen hat. Im privaten Bereich mag das Spielerei sein, im professionellen Bereich sind das handfeste Argumente in Bezug auf die TCO.

Deshalb finde ich es unfair, diesen inkonsistenten Murks den Entwicklern vorzuwerfen, die wie in diesem Fall seit 30 Jahren ein Projekt pflegen und das evtl. schon wie vom TE beschrieben ein eigenes Ökosystem bildet.
Danke. Hilft zwar nicht tut aber gut.
Ich denke wir hatten nur beide mal das Bedürfnis uns auszukotzen
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.910 Beiträge
 
Delphi 12 Athens
 
#6

AW: ein Fass nach dem anderen geht auf

  Alt 19. Nov 2020, 12:04
Also guckt man, was da die lieben Stromtierchen verscheucht und landet bei diversen Hintergrunddiensten, die man weder braucht noch dass sie für den Systembetrieb (die Hauptaufgabe eines Betriebssystems!) notwendig sind.
Das ist genau der Punkt:
Für das System an sich braucht man vieles nicht. Zum Beispiel könnte man unter Windows auch das Netzwerk deaktivieren oder Netzwerkfreigaben deaktivieren oder die linke oder rechte Windows-Taste deaktivieren. Während ersteres wohl vielen auffallen würde, würden Netzwerkfreigaben schon weniger Nutzern fehlen und die Windows-Taste links nutzen noch weniger. Die rechte wiederum nutzt fast niemand.

Aber wo zieht man da die Grenze? Was braucht "der Nutzer" und was nicht? Und das ist der Unterschied zu Linux. Bei Windows soll das System einfach vieles können ohne dass man davon etwas wissen muss, bei Linux muss man vieles explizit installieren oder konfigurieren, dafür ist ein Basis-System sehr schlank.

Leider gibt es zu einigen der "unnötigen" Dienste aber trotzdem Abhängigkeiten. Könnte man diese also auch heute noch einfach abschießen, würde bei manchen das gleiche passieren wie damals als das noch ging: Es gibt einen Fehler. Bei Windows 98 gab es dann einen Bluescreen, heute würde vielleicht nur etwas nicht mehr gehen, weil die Prozesse besser voneinander getrennt sind.
Ich vermisse die Zeit nicht, in der man bei Win 9x ziemlich einfach mit ein paar Klicks Windows zum Absturz bringen konnte...

Deshalb sehe ich solche Schutzmaßnahmen etwas differenzierter.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#7

AW: ein Fass nach dem anderen geht auf

  Alt 19. Nov 2020, 12:46
Zitat:
Stromhunger
Genauso kann man auch ein passendes OS Windows benutzen.
Starter, Embedded, IoT, Core, ...

Selbst von Android gibt es inzwischen eine sparsame "Go"-Variante für "kleine" Systeme.



Mam muß nicht immer die Home/Professional-Editionen verwenden, wo alles Mögliche idiotensicher vorinstalliert/-aktiviert ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Nov 2020 um 15:57 Uhr) Grund: schlechtschreibung
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.910 Beiträge
 
Delphi 12 Athens
 
#8

AW: ein Fass nach dem anderen geht auf

  Alt 18. Nov 2020, 14:00
Noch so eine Seuche! Stell dir mal vor wie es wäre, wenn eine Setup.exe SELBST nachprüft ob sie Adminrechte (vgl. "su" bei Linux) hat, anstatt ein Pappschild (Manifest) mit der Aufschrift "Bitte liebes System, gib mir mal Adminrechte" vor sich her zu tragen. Und wenns diese Rechte nicht hat, verlangt es danach. Diese Rechte vergäbe der User (bei Linux mit einem "sudo") und nicht das System.
Das ist ja möglich, wird nur in der Regel nicht gemacht, weil es meistens keinen Sinn hätte die Rechte selbst zu prüfen. Und eine Adminkonsole vorher aufmachen und dann das Setup starten oder runas aufrufen um den Nutzer anzugeben kann man auch unter Windows. Einfacher ist aber, wenn man schlicht den Dialog von Windows bestätigt. Und deshalb ist das auch der Standard für normale lokale Installationen...

Ein solches Setup würde die Dateien auf die verschiedenen Ordner verteilen und mit den korrekten Zugriffsrechten versehen (geerbt vom sudo aufrufenden Benutzer).
Wer bestimmt denn, dass das "korrekt" ist? Ich möchte z.B. nicht, dass die beim Setup gesetzten Voreinstellungen durch den Benutzer geändert werden können, die des Benutzers darf er aber ändern. Möglich ist so etwas mit dem Windows Installer durchaus.
Und es gibt ja auch extra die Trennung zwischen Daten für alle Benutzer und für bestimmte, wenn du ein Setup erstellst.

Damit sind wir nämlich beim entscheidenden Punkt: Bei Windows gibt es inzwischen Instanzen (z.B. SYSTEM) mit höheren Rechten, als jemals ein Anwender erlangen kann. Selbst als Admin stößt du immer wieder auf Dinge, wo dir der "Zugriff verweigert" wird. Ein Unding.
Besitzer ändern, fertig...

Schreibst du Systemdienste, dann laufen die bei Windows im SYSTEM-Kontext.
Wenn du das so einstellst, ja. Unsere Dienste laufen nicht alle im System-Kontext, sondern teilweise auch im Benutzerkontext.

Schon mal versucht, mit einem Non-Admin-Programm unter Windows auf Dateien schreibend zuzugreifen, die dein eigener (!!!) Dienst erstellt hat?
Ja, machen wir öfter. Damit hatten wir bisher keine Probleme. Man muss halt die Rechte entsprechend vergeben oder den Dienst im gewünschten Kontext ausführen, egal ob unter Windows oder Linux. Nur die Logik ist eben je nach System unterschiedlich.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (18. Nov 2020 um 14:03 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ein Fass nach dem anderen geht auf

  Alt 19. Nov 2020, 11:02
Deshalb finde ich es unfair, diesen inkonsistenten Murks den Entwicklern vorzuwerfen, die wie in diesem Fall seit 30 Jahren ein Projekt pflegen und das evtl. schon wie vom TE beschrieben ein eigenes Ökosystem bildet.
Danke. Hilft zwar nicht tut aber gut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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