[...] Pero eso no parece tener sentido, ya que siempre tengo que ingresar sudo, ya sea que esté administrando paquetes, editando archivos de configuración, instalando un programa desde la fuente o lo que sea que tenga. [...]
El adjetivo implícita relacionada con todo esto es que son de todo el sistema o
globales cambios. Debe considerar los orígenes de Unix como un sistema multiusuario 1 donde varios usuarios usarían la misma instalación de forma remota. No tendría sentido que un usuario laico permitiera cambiar la configuración global para todos los usuarios. Eran los administradores del sistema, la raíz, el privilegio y la responsabilidad.
En una configuración multiusuario, tiene el software preinstalado y su configuración de todo el sistema en /usr
y /etc
respectivamente. Tocar estas ubicaciones requeriría permisos de root. Pero debido a que el software Unix está escrito pensando en los usuarios múltiples, puede compilar e instalar el software en el $HOME
directorio 2 y tener sus propios archivos de configuración en su hogar, donde puede editar los archivos libremente sin ser un súper usuario.
Además de instalar su propio software en casa, la mayoría del software de todo el sistema leerá la configuración específica del usuario $HOME
inmediatamente después de leer la configuración por primera vez /etc
. Esto le permite personalizar casi cualquier cosa sin tener que ir root
.
Con una PC hogareña, en una única configuración de usuario principal, puede usar sudo
y enrutar su camino hacia las cosas que le gustan. Pero es costumbre no tocar la configuración de la aplicación /etc
sino proporcionar siempre la configuración específica del usuario en el hogar. De esa manera, puede permitir que su administrador de paquetes restablezca las configuraciones de todo el sistema en las actualizaciones. Instalar un nuevo software en todo el sistema está bastante bien en la configuración de usuario único; los paquetes de distribución no asumen las alternativas, por lo que es una salida fácil.
Dejaré que mi administrador de paquetes instale cosas globalmente, pero cualquier cosa compilada de fuentes y hecha por mí mismo la dejo $HOME
. Y no tengo que sudo por nada de eso.
Si tiene archivos de datos, almacenamiento fuera de su $HOME
, no dude en chown
o
chgrp
los directorios a su nombre para que pueda acceder a los archivos sin ellos
sudo
.
[1] (un poco irónico ya que Unix estaba destinado a ser una versión de 'usuario único' del sistema operativo Multics)
[2] (si el sistema lo permite al no montar particiones domésticas como noexec)
sudo
hacer cualquier cosa que implique cambiar el sistema, si solo está operando en sus propios archivos / escritorio, no está afectando a nadie más, por lo que no necesita privilegios elevados. Si está ejecutando comandos privilegiados sin sudo, probablemente ya sea un súper usuario (es decir, root) y eso generalmente es menos aconsejable que usar sudo para las tareas específicas de todo el sistema