Reproduciendo el abogado del diablo ,
Supongamos que compro un servidor Linux de un proveedor de alojamiento. Me dieron una contraseña para el usuario root y me dijeron que puedo iniciar sesión usando SSH. El único propósito que tiene este servidor es alojar uno o más sitios web, posiblemente con SSL correctamente configurado y habilitado.
Mi inicio de sesión inicial será instalar (a través de un sistema de gestión de paquetes bien revisado y ampliamente utilizado) y configurar (editando archivos en /etc
) un servidor web, una base de datos, algún software que no tenga acceso a Internet, y un servidor de aplicaciones web (PHP-FPM, Unicorn, ese tipo de cosas). La administración de paquetes fue lo suficientemente inteligente como para configurar usuarios sin privilegios para ejecutar los servidores, una configuración que mantengo. A continuación, coloco algunos archivos del sitio web (PHP, Ruby, Python, etc.) en /var/www
, y chown
todos los archivos que pertenecen al mismo usuario sin privilegios que se ejecuta como el proceso del servidor web (es decir, www-data
).
En el futuro, solo iniciaré sesión, y solo para actualizar los archivos del sitio web y realizar algunas operaciones de solo lectura, como revisar los registros.
En el escenario anterior, ¿hay alguna razón relacionada con la seguridad , por qué debo crear una cuenta de usuario no root para usar en lugar del usuario root? Después de todo, casi todos los comandos se ejecutarían con sudo
si hubiera iniciado sesión con un usuario no root.
Tenga en cuenta: entiendo que existen muchos motivos de seguridad universales y no relacionados con la seguridad para utilizar usuarios no root. No estoy preguntando acerca de la necesidad de cuentas de usuario no root. Mi pregunta se limita estrictamente a la configuración limitada que describo anteriormente. Creo que esto es relevante porque aunque mi ejemplo es limitado, es muy común.