È perché sono diversi, chiari e semplici. Controllo dell'account utente avrebbe potuto essere implementato come sudo, ma non lo era.
Puoi pensarlo come un'analogia con la protezione della rete.
sudoè come quando un programma richiede l'accesso alla rete e il firewall richiede di concederlo o meno. Puoi dire di sì e il programma aprirà il socket, oppure puoi dire di no e si lamenterà della mancanza di connessione e farà tutto ciò che può fare senza accesso alla rete (alcuni programmi mal progettati in realtà si bloccano). Per esempio:
function1();
input();
function2();
secure_operation(); //requests access
function3(); //may depend on results of previous operation; error-checking important
Controllo dell'account utente è più simile all'avviso che viene visualizzato quando si tenta di aprire un file scaricato in un volume NTFS. Windows ti avvisa del potenziale male e ti chiede se vuoi eseguirlo (per niente) o no. È un'operazione tutto o niente; non puoi scegliere di fidarti solo di una parte del programma e non di altri. Per esempio:
if (requires_high_priv(program)) {
if (request_priv(program))
program();
}
else {
program();
}
Dovete ricordare che, diversamente da Linux, che è più orientato verso utenti e applicazioni avanzati, Windows è progettato per essere user-friendly per il maggior numero possibile di utenti, quindi semplificare la sicurezza è fondamentale. Inoltre, a causa della sua ampia superficie di esposizione, è un bersaglio frequente per i malware, quindi ha più senso fidarsi completamente di un programma o non farlo affatto.