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:
function1();
input();
function2();
secure_operation(); //requests access
function3(); //may depend on results of previous operation; error-checking important
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:
if (requires_high_priv(program)) {
if (request_priv(program))
program();
}
else {
program();
}
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.