[...] Ma questo non sembra avere senso, dato che devo sempre inserire sudo, sia che gestisca i pacchetti, che modifichi i file di configurazione, che installi un programma dal sorgente o che cosa hai. [...]
L'aggettivo implicito correlato a tutti questi è che si tratta di cambiamenti a livello di sistema o
globali . È necessario considerare le origini di Unix come un sistema multiutente 1 in cui più utenti utilizzerebbero la stessa installazione da remoto. Non avrebbe senso per un utente laico consentire di modificare le impostazioni globali per tutti gli utenti. Era il privilegio e la responsabilità del amministratore di sistema, della radice.
In un'impostazione multiutente hai il software preinstallato e la loro configurazione a livello di sistema in /usre /etcrispettivamente. Toccare queste posizioni richiederebbe i permessi di root. Ma poiché il software Unix è stato progettato pensando a più utenti, è possibile compilare e installare il software nella $HOME
directory 2 e avere i propri file di configurazione nella propria abitazione, dove è possibile modificare i file liberamente senza essere un superutente.
Oltre a installare il proprio software sotto casa, la maggior parte dei software a livello di sistema leggerà la configurazione specifica dell'utente $HOMEsubito dopo aver letto la configurazione da /etc. Ciò ti consente di personalizzare quasi tutto senza mai andare root.
Con un PC di casa, in un'unica impostazione dell'utente principale, puoi utilizzare sudoe eseguire il root su ciò che ti piace. Ma è consuetudine non toccare la configurazione dell'applicazione /etcma fornire sempre la configurazione specifica dell'utente in casa. In questo modo puoi consentire al gestore dei pacchetti di ripristinare le configurazioni a livello di sistema sugli aggiornamenti. L'installazione di un nuovo software a livello di sistema è abbastanza OK nelle impostazioni per utente singolo; i pacchetti di distribuzione non assumono le alternative, quindi è una soluzione semplice.
Lascerò che il mio gestore di pacchetti installi roba a livello globale, ma qualsiasi materiale compilato da fonti e fatto da me stesso che lascio sotto $HOME. E non devo fare nulla per quello.
Se hai file di dati, spazio di archiviazione esterno al tuo $HOME, sentiti libero chowno
chgrple directory a tuo nome in modo da poter accedere ai file senza
sudo.
[1] (leggermente ironico come Unix doveva essere una versione "single user" del sistema operativo Multics)
[2] (se il sistema lo consente non montando le partizioni domestiche come noexec)
sudoper fare qualsiasi cosa che implichi la modifica del sistema, se stai solo operando sui tuoi file / desktop non stai influenzando nessun altro, quindi non hai bisogno di privilegi elevati. Se stai eseguendo comandi privilegiati senza sudo, probabilmente sei già un super utente (cioè root) e di solito è meno consigliabile che usare sudo per le attività specifiche del sistema