Come abilitare l’utente root su Mac

Non c'è bisogno di abilitare il root su un Mac. E non dovreste farlo se tenete alla vostra sicurezza. È un'idea molto migliore usare sudo, principalmente a causa del principio ampiamente accettato del minimo privilegio, ma anche per altre buone ragioni.

Meno privilegio

È sempre una buona idea eseguire con il minor numero possibile di privilegi escalati, perché (a) riduce la possibilità di incidenti di escalation dei privilegi, e (b) riduce l'impatto degli incidenti di escalation dei privilegi che si verificano. Se avete bisogno di sentire questo da una fonte più credibile di un tizio su internet, ecco cosa Apple stessa ha da dire al riguardo (da pagina 61 della Mac OS X Security Configuration Guide):

A meno che non abbiate bisogno dell'accesso come amministratore per specifiche attività di manutenzione del sistema che non possono essere eseguite autenticandovi con l'account dell'amministratore mentre siete collegati come utente normale, effettuate sempre il login come utente non amministratore. Esci dall'account di amministratore quando non stai usando il computer come amministratore. Non navigate mai sul web o controllate la posta elettronica mentre siete collegati ad un account di amministratore.

Se siete collegati come amministratore, vi vengono concessi privilegi e abilità di cui potreste non aver bisogno. Per esempio, puoi potenzialmente modificare le preferenze di sistema senza che ti sia richiesta l'autenticazione. Questa autenticazione bypassa una protezione di sicurezza che impedisce la modifica maliziosa o accidentale delle preferenze di sistema.

Quando si è connessi come amministratore (o root), tutto ciò che si fa e ogni programma che si esegue (direttamente o indirettamente, intenzionalmente o inavvertitamente) - compreso ciascuno dei vari processi necessari per far funzionare l'interfaccia utente del sistema - viene eseguito con privilegi amministrativi (o root), il che significa che ciascuno di questi processi ha automaticamente accesso illimitato a più parti del sistema rispetto agli account utente standard. Questo significa che se fate un errore mentre cambiate, spostate o cancellate i file di sistema, o eseguite programmi, o peggio, se eseguite inconsapevolmente un trojan / worm o c'è una falla di sicurezza in uno di questi processi, potete danneggiare e alterare i file critici del sistema con poca o nessuna protezione o riconoscimento da parte del sistema.

Mentre potreste certamente usare un account amministrativo ogni giorno senza effetti negativi, anche per mesi o anni senza incidenti, è l'unica volta che conta che dovreste preoccuparvi. Per esempio, non so dirvi quante volte ho visto utenti Mac chiedere aiuto perché hanno accidentalmente cancellato qualche file sul loro sistema che non avrebbero potuto cancellare così facilmente se non avessero usato privilegi di escalation in quel momento.

Mentre la maggior parte dei file nella vostra cartella home sono di vostra proprietà, molti file e cartelle in Mac OS X sono di proprietà del gruppo "admin", di cui ogni account amministrativo è un membro. Quando sei loggato come utente normale, Mac OS X non ti permetterà di modificare queste parti del sistema senza prima inserire il nome utente e la password di un account amministrativo. Questo è un ulteriore livello di sicurezza che non avrai se stai funzionando come amministratore. Al contrario, quando sei loggato come amministratore, Mac OS X ti permette di cambiare, spostare e cancellare tali file e cartelle senza fare domande. E quando siete loggati come root, vi viene dato ancora più potere poiché il sistema vi permette di cambiare *tutti* i file sull'intero sistema senza domande o richieste.

Penso che la ragione per cui Apple non dà questo consiglio a tutti gli utenti Mac è probabilmente perché la lunga spiegazione necessaria per trasmettere le ragioni e come farlo non sarebbe probabilmente ben accolta. La maggior parte degli utenti non ne sa abbastanza di questioni di sicurezza per capire, e francamente, la maggior parte non vuole essere disturbata. Apple probabilmente potrebbe automatizzare la creazione di un account amministrativo iniziale e di un account non amministrativo, ma se gli utenti non sono adeguatamente istruiti sui problemi coinvolti, non c'è garanzia che li usino effettivamente in modo corretto. È più complicato che offrire un semplice consiglio in una guida per l'utente; )

Ci sono altre buone ragioni per usare sudo piuttosto che accedere come root:

Sicurezza di più utenti

Siccome l'autenticazione sudo usa la password utente piuttosto che la password di root, più utenti possono usare sudo senza condividere la password di root.

Pensieratezza

Ogni comando sudo richiede l'autenticazione, il che vi fa fermare e pensare a quello che state facendo. Al contrario, quando siete loggati come root, i comandi non richiedono alcuna autenticazione, il che significa che è più facile che accadano errori.

Ticketing

Quando invocate sudo per la prima volta e vi autenticate con le vostre credenziali, vi viene concesso un ticket che scade dopo un certo numero di minuti (di solito un default di 5 minuti). I comandi successivi aggiornano il timer per altri 5 minuti. Quando nessun comando è stato emesso dopo la scadenza del timer di 5 minuti, i comandi successivi richiedono una nuova autenticazione. Questo significa che se vi capita di allontanarvi dal vostro computer dimenticandovi di avere una sessione sudo aperta in una finestra di terminale, qualcun altro non sarà in grado di usare la vostra autenticazione per fare cose con sudo. Non c'è questa protezione quando si è connessi all'account di root.

Logging

Ogni comando inserito quando si usa sudo viene registrato nel log di sistema, che permette all'amministratore (voi) di vedere chi ha emesso quali comandi sul vostro sistema. Questo è preferibile dal punto di vista della sicurezza, ma è anche estremamente utile per la risoluzione dei problemi. Al contrario, i comandi inseriti quando si accede come root non vengono registrati nel log di sistema.

Script kiddies

Gli script automatizzati utilizzati da molti malware presumono che ci sia un account di root abilitato e tentano di usare la forza bruta per indovinare la password di quell'account per ottenere l'accesso root a qualsiasi macchina su internet. Avere l'account di root di Mac OS X disabilitato (come è in ogni installazione predefinita) impedisce completamente questo, perché rimuove efficacemente quel vettore di attacco.

Sono sicuro che ci sono altre ragioni che non mi sono venute in mente al momento; ma è sufficiente dire che per tutte le ragioni di cui sopra non c'è una buona ragione per abilitare l'account di root in Mac OS X quando sudo funziona bene ed è molto poco complicato da usare.