Ich komme aus einem Linux / Unix-Hintergrund und kann nicht verstehen, wie die Benutzerkontensteuerung unter Windows funktioniert.
Ich habe gehört, dass UAC funktioniert sudo
. Meine Linux-Anwendung kann noch andere Aufgaben ausführen, bevor sie anruft sudo
.
In Windows muss jedoch allen Anwendungen, für die eine UAC-Bestätigung erforderlich ist, eine UAC-Berechtigung erteilt werden, bevor überhaupt eine tatsächliche Arbeit ausgeführt werden kann! Ich führe eine Anwendung aus, frage nach einer UAC-Bestätigung und lehne sie ab - die Anwendung wird einfach nicht ausgeführt.
Funktioniert die Benutzerkontensteuerung also so?
sudo su
./run_app
Eher, als:
./do_work1
sudo su
./du_work2
Vielen Dank für die tolle Antwort!
Unter Windows wird die UAC-Eingabeaufforderung ausgelöst, wenn Sie versuchen, eine ausführbare Datei auszuführen, für die eine Erhöhung in einem in die Datei eingebetteten Manifest erforderlich ist, und wenn Sie noch keine erhöhte Version ausführen . Das Verhalten ähnelt eher setuid als su, da es sich um die Datei handelt und nicht um den Befehl, der dem Betriebssystem mitteilt, dass die ausführbare Datei mit unterschiedlichen Anmeldeinformationen ausgeführt werden soll.
quelle
Es ist, weil sie schlicht und einfach verschieden sind. UAC könnte wie umgesetzt wurden
sudo
, aber es war nicht.Sie können sich das als Analogie zum Netzwerkschutz vorstellen.
sudo
ist wie wenn ein Programm einen Netzwerkzugriff anfordert und Ihre Firewall Sie auffordert, diesen zu gewähren oder nicht. Sie können "Ja" sagen, und das Programm öffnet den Socket, oder Sie können "Nein" sagen, und es beschwert sich über mangelnde Verbindung und unternimmt alles, was es ohne Netzwerkzugriff tun kann (einige schlecht gestaltete Programme stürzen tatsächlich ab). Beispielsweise:Die Benutzerkontensteuerung ähnelt eher der Warnung, die Sie erhalten, wenn Sie versuchen, eine Datei zu öffnen, die auf ein NTFS-Volume heruntergeladen wurde. Windows warnt Sie vor möglichen Fehlern und fragt Sie, ob Sie es (überhaupt) ausführen möchten oder nicht. Es ist eine Alles-oder-Nichts-Operation; Sie können nicht wählen, nur einem Teil des Programms und nicht anderen zu vertrauen. Beispielsweise:
Sie müssen sich daran erinnern, dass Windows im Gegensatz zu Linux, das sich eher an fortgeschrittene Benutzer und Anwendungen richtet, benutzerfreundlich für eine möglichst große Anzahl von Benutzern konzipiert wurde. Daher ist die Vereinfachung der Sicherheit von größter Bedeutung. Darüber hinaus ist es aufgrund seiner großen Angriffsfläche ein häufiges Ziel für Malware. Daher ist es sinnvoller, einem Programm entweder vollständig zu vertrauen oder überhaupt nicht.
quelle
Ich kenne die Linux-Architektur nicht genau, also verzeihen Sie mir, wenn ich einen Fehler mache, aber ich verstehe, dass Linux und Windows in dieser Hinsicht überhaupt nicht so unterschiedlich sind ...
Ein Beispiel ... Ein Kopierskript, das eine Kopie einer normalen Datei an einen nicht geschützten Speicherort und eine Datei, die versucht, an einen geschützten Speicherort zu kopieren, erstellt und anschließend erneut kopiert.
Meines Wissens nach wird unter Linux eine Anwendung einfach ausgeführt und versucht, eine Aktion auszuführen. Wenn sie nicht über die Berechtigung zum Ausführen dieser Aktion verfügt, schlägt diese Aktion fehl, wird aber fortgesetzt. Im obigen Beispiel wird beim Ausführen des Kopierskripts unter Linux als regulärer Benutzer die reguläre Datei kopiert, ein Berechtigungsproblem erteilt und die zweite Datei kopiert. Wenn das Skript mit sudo ausgeführt wird, werden alle drei Kopien erstellt.
Windows ist in dieser Hinsicht genauso: Wenn Sie das Skript als nicht administrativer Benutzer ausführen, wird nur eines kopiert, die Berechtigung wird für das zweite erteilt und das nächste kopiert. Mit der Benutzerkontensteuerung werden alle drei ausgeführt.
Der Unterschied besteht darin, dass für viele Windows-Anwendungen lediglich eine Konfiguration festgelegt wurde, sodass sie standardmäßig nach einer UAC-Erhöhung fragen und beendet werden bzw. fehlschlagen, wenn sie diese nicht haben. Dies wird jedoch immer weniger.
quelle