[...] 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 /usr
e /etc
rispettivamente. 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 $HOME
subito 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 sudo
e eseguire il root su ciò che ti piace. Ma è consuetudine non toccare la configurazione dell'applicazione /etc
ma 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 chown
o
chgrp
le 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)
sudo
per 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