Unix non è in realtà un sistema desktop. È un sistema che gira su un grande computer che costa circa quanto una casa situata nel seminterrato dell'università. Tu, come qualcuno che non può permettersi il suo computer, devi condividere il computer con altri duemila, e con diverse decine di utenti contemporaneamente per quella materia.
Per inciso, oggi anche puoi far girare un sistema simile a Unix sul tuo computer desktop o su un SoC di una carta di credito che costa $ 20.
In linea di principio, tuttavia, Unix non è progettato per utenti singoli. L'utente singolo non è importante. Ciò che è nella tua directory home è il tuo problema, ma ciò che root
può fare è il problema di tutti. Pertanto, solo le poche attività che richiedono realmente di lavorare come root
devono essere eseguite con tale utente e preferibilmente (per limitare la finestra temporale durante la quale è possibile fare del male) non accedendo con tale account, ma utilizzando in modo esplicito sudo
per i singoli comandi che lo richiedono. C'è anche molta religione in questo, ed è per questo che alcuni distributori sono così dannatamente arroganti da minacciarti quando digiti su
piuttosto che sudo
per ognuno dei 10 diversi apt
di comandi che devi eseguire installare qualche piccola cosa Questo incidente verrà segnalato , beh, dimmi, cazzo, il tuo rapporto. Alcune persone sanno davvero come infastidire gli altri.
Quindi puoi cancellare tutte le tue foto personali senza essere root
. Giusto. Il malware può cancellare tutte le cose nella tua home directory, giusto. Può negare il servizio riempiendo il disco fino a raggiungere la quota dell'utente, giusto. Ma dal punto di vista del sistema, questo è solo il tuo problema, e a nessun altro importa. Nessun altro utente è (in linea di principio) interessato.
Ora, il problema con un singolo sistema utente moderno (o pochi) è che il modello di sicurezza logica bivalente è del tutto inapplicabile, proprio come l'idea "c'è centinaia di utenti".
Sfortunatamente, è molto difficile trovare qualcosa di meglio. Guarda Windows se vuoi vedere come non rubare un'idea (sono riusciti davvero a peggiorare l'approccio).
Alcuni web browser e sistemi telefonici (o smart TV) tentano (e falliscono) di fornire qualcosa di meglio, e il Linux moderno ha anche un sistema più fine (ma non saprei come configurarlo correttamente senza spendere settimane del mio tempo).
Il problema è che il modello di sicurezza bivalente presuppone che le normali applicazioni non richiedano alcun privilegio (che è sbagliato perché alcune cose per lo più innocue richiedono privilegi) mentre le applicazioni non normali richiedono l'accesso completo al sistema informatico (che è anche sbagliato, quasi nessun programma ha bisogno di accesso completo, mai).
D'altra parte, anche i modelli di sicurezza a grana più fine (che sono ancora piuttosto grossolani) fanno presupporre erroneamente che se un'applicazione richiede un set di privilegi, ha davvero bisogno di quel set completo e l'utente è a suo agio nel concederlo.
Per quanto ne so, non esiste un sistema in cui un'applicazione possa richiedere i privilegi A, B e C e l'utente può accettare di concedere A (ma non B e C) e l'applicazione può quindi interrogare quali privilegi è stato dato e decide se è in grado di eseguire l'attività richiesta o no.
Quindi, in genere, hai la possibilità di concedere XYZ-app "memorizza i dati su un archivio permanente" (con cui puoi essere OK) e anche che consente "accedi alla mia posizione" e "accedi al mio dati personali "o" installa il driver di sistema "(con cui non sei d'accordo), o bene, non puoi eseguire il programma.
Oppure, puoi consentire al programma XYZ di "apportare modifiche al tuo computer", qualunque cosa ciò significhi, oppure puoi scegliere di non eseguirlo. E, devi confermarlo di nuovo ogni volta. Che, onestamente, fa davvero schifo dal punto di vista dell'utente.