To dlatego, że są różne, jasne i proste. UAC mógł być wdrożony jak sudo
, ale tak nie było.
Można to traktować jako analogię do ochrony sieci.
sudo
przypomina to, gdy program żąda dostępu do sieci, a zapora wyświetla monit o jego przyznanie lub nie. Możesz powiedzieć tak, a program otworzy gniazdo lub możesz powiedzieć nie i narzeka na brak połączenia i robi wszystko, co może zrobić bez dostępu do sieci (niektóre źle zaprojektowane programy faktycznie ulegają awarii). Na przykład:
function1();
input();
function2();
secure_operation(); //requests access
function3(); //may depend on results of previous operation; error-checking important
Kontrola konta użytkownika przypomina ostrzeżenie, które pojawia się podczas próby otwarcia pliku pobranego na wolumin NTFS. Windows ostrzega przed potencjalnym złem i pyta, czy chcesz go uruchomić (w ogóle), czy nie. To operacja „wszystko albo nic”; nie możesz ufać tylko części programu, a nie innym. Na przykład:
if (requires_high_priv(program)) {
if (request_priv(program))
program();
}
else {
program();
}
Musisz pamiętać, że w przeciwieństwie do Linuksa, który jest bardziej ukierunkowany na zaawansowanych użytkowników i aplikacje, system Windows został zaprojektowany tak, aby był przyjazny dla jak największej liczby różnych użytkowników, więc uproszczenie bezpieczeństwa jest najważniejsze. Co więcej, ze względu na dużą powierzchnię narażenia, jest często celem szkodliwego oprogramowania, więc bardziej sensowne jest albo całkowicie zaufać programowi, albo wcale.