¿Por qué Ubuntu tiene una cuenta raíz deshabilitada?

57

Ubuntu deshabilita el inicio de sesión de root por "razones de seguridad". Sin embargo, me parece que no ayuda con la seguridad en absoluto.

Si un intruso logra obtener su contraseña de inicio de sesión para Ubuntu, también tiene la contraseña de superusuario, ya que es la misma que la contraseña de inicio de sesión.

Sin embargo, si se requiere la contraseña de root, solo tener el inicio de sesión no ayudará mucho al intruso, eso es correcto, ¿no?

Básicamente, lo que quiero saber es: ¿por qué Ubuntu eligió deshabilitar la contraseña de root? ¿Cuáles son las razones de seguridad?

Por favor, no responda de acuerdo con lo que "cree" que fue la razón: estoy buscando una respuesta de fuentes oficiales o vinculada a ellas.

Dime por qué
fuente
66
A ver si esto ayuda.
Mitch
55
Las razones para usar sudo son las mismas que la razón por la cual sudo fue creado en primer lugar.
Thorbjørn Ravn Andersen
2
Canonical considera que es el equilibrio más cercano entre usabilidad y seguridad para usuarios de Windows y OSX que no tienen experiencia en administración de sistemas. El objetivo de tener una distribución de escritorio es atraer a las personas que no quieren aprender sobre Linux, per se, pero quieren poder encontrar cosas que quieren ejecutar, hacer clic en ellas y hacer que se ejecuten. En el momento en que un usuario "normal" siente curiosidad por hacer algo más que solo web / mail / pr0n / games, de repente Ubuntu puede ser una puerta de entrada a todas esas cosas geniales de Unixy de las que ha oído hablar (incluida la raíz "habilitadora": siempre ha estado ahí , prueba sudo su).
zxq9
1
Si alguien registra su cuenta, puede capturar la contraseña de root a medida que la escribe, si alguna vez pasa sude su cuenta a root. Su punto sobre la escalada de privilegios solo se aplica si inicia sesión como root en una consola separada y nunca hace nada como root que confía en los archivos a los que su cuenta normal tiene acceso de escritura. Como dicen las respuestas existentes, una de las principales razones es disuadir a los novatos de pensar en root como una cuenta en la que debe iniciar sesión y usar.
Peter Cordes
2
Consulte también ¿Cuál es la forma más segura de obtener privilegios de root: sudo, su o login? en Unix / Linux Stack Exchange.
mattdm

Respuestas:

81

Mitch publicó un buen enlace en el comentario: ¿Por qué es malo iniciar sesión como root? y el sitio de Debian tiene los principales beneficios enumerados en su wiki :

¿Por qué sudo?

Usar sudoes mejor (más seguro) que abrir una sesión como root por varias razones, que incluyen:

  • Nadie necesita saber la contraseña de root ( sudosolicita la contraseña del usuario actual). Se pueden otorgar privilegios adicionales a usuarios individuales temporalmente, y luego quitarlos sin la necesidad de un cambio de contraseña.

  • Es fácil ejecutar solo los comandos que requieren privilegios especiales mediante sudo; el resto del tiempo, trabajas como un usuario sin privilegios, lo que reduce el daño que pueden causar los errores.

  • Auditoría / registro: cuando sudose ejecuta un comando, se registran el nombre de usuario original y el comando.

Por las razones anteriores, cambiar a root usando sudo -i(o sudo su) generalmente está en desuso porque cancela las características anteriores.

Con respecto a Ubuntu Los beneficios y desventajas se enumeran en nuestra wiki :

Beneficios de usar sudo

Ubuntu ofrece varios beneficios al dejar los inicios de sesión raíz deshabilitados de manera predeterminada, que incluyen:

  • El instalador tiene menos preguntas que hacer. Los usuarios no tienen que recordar una contraseña adicional para uso ocasional (es decir, la contraseña de root). Si lo hicieran, es probable que lo olviden (o lo graben de forma insegura, permitiendo que cualquiera pueda acceder fácilmente a su sistema).

  • Evita el inicio de sesión interactivo "Puedo hacer cualquier cosa" de forma predeterminada. Se le pedirá una contraseña antes de que ocurran cambios importantes, lo que debería hacerle pensar en las consecuencias de lo que está haciendo.

  • sudo agrega una entrada de registro de los comandos run (in /var/log/auth.log). Si te equivocas, puedes volver atrás y ver qué comandos se ejecutaron.

  • En un servidor, cada cracker que intente ingresar por fuerza bruta sabrá que tiene una cuenta llamada root y lo intentará primero. Lo que no saben es cuáles son los nombres de usuario de sus otros usuarios. Dado que la contraseña de la cuenta raíz está bloqueada, este ataque se vuelve esencialmente sin sentido, ya que no hay una contraseña para descifrar o adivinar en primer lugar.

  • Permite transferir fácilmente los derechos de administrador al agregar y eliminar usuarios de los grupos. Cuando usa una sola contraseña de root, la única forma de desautorizar a los usuarios es cambiar la contraseña de root.
  • sudo se puede configurar con una política de seguridad mucho más precisa. La contraseña de la cuenta raíz no necesita ser compartida con todos los que necesitan realizar algún tipo de tarea (s) administrativa (s) en el sistema (vea la viñeta anterior).

  • La autenticación caduca automáticamente después de un breve período de tiempo (que puede establecerse en el mínimo deseado o 0); así que si te alejas de la terminal después de ejecutar comandos como root usando sudo, no dejarás una terminal root abierta indefinidamente.

Desventajas de usar sudo

Aunque para las computadoras de escritorio los beneficios de usar sudo son excelentes, hay posibles problemas que deben tenerse en cuenta:

  • Redirigir la salida de comandos ejecutados con sudo requiere un enfoque diferente. Por ejemplo, considerar sudo ls > /root/somefile no funcionará ya que es el shell el que intenta escribir en ese archivo. Puede utilizar ls | sudo tee -a /root/somefilepara agregar o ls | sudo tee /root/somefilesobrescribir contenidos. También puede pasar todo el comando a un proceso de shell ejecutado en sudo para que se escriba el archivo con permisos de root, como sudo sh -c "ls > /root/somefile".

  • En muchos entornos de oficina, el ÚNICO usuario local en un sistema es root. Todos los demás usuarios se importan utilizando técnicas NSS como nss-ldap. Para configurar una estación de trabajo, o arreglarla, en el caso de una falla de red donde nss-ldap está roto, se requiere root. Esto tiende a dejar el sistema inutilizable a menos que esté agrietado. Aquí se necesita un usuario local adicional o una contraseña de root habilitada. La cuenta de usuario local debe tener su $ HOME en un disco local, noen NFS (o cualquier otro sistema de archivos en red) y un .profile / .bashrc que no hace referencia a ningún archivo en montajes NFS. Este suele ser el caso de root, pero si agrega una cuenta de rescate no root, deberá tomar estas precauciones manualmente. Sin embargo, la ventaja de usar un usuario local con sudo es que los comandos se pueden rastrear fácilmente, como se menciona en los beneficios anteriores.

Y siempre lo hemos tenido (desde el primer lanzamiento).


La referencia más antigua que encontré habla sobre 4.10 que tiene "sudo"

SHUTTLEWORTH LANZA UBUNTU LINUX BASADO EN DEBIAN

... Ubuntu Linux basado en Debian incluye Gnome 2.8, kernel 2.6.8.1, OpenOffice.org 1.1.2 y viene con un procedimiento de instalación basado en texto, pero fácil. Ubuntu ha deshabilitado al usuario root prefiriendo usar sudo como Mac OSX ...

Rinzwind
fuente
Falta un par de características de seguridad de los beneficios : (i.) (Para GUI) Nadie puede obtener 'privilegios elevados' sin acceso local interactivo (escribir contraseña en el teclado); (ii.) El 'privilegio elevado' otorgado es solo para los comandos sudo'd, no para ninguna tarea / subprocesos para el usuario (o root).
david6
Esto parece ignorar los puntos planteados en la pregunta original y oscurecerlo con mucha otra información ¿por qué es bueno?
paul23
6

Creo que lo que está escrito en la página de ayuda es lo suficientemente claro y objetivo.

Ubuntu es "para todos" y aunque si eres lo suficientemente bueno no necesitas acceso root para dañar tu computadora, al mismo tiempo no lo necesitas en absoluto (y sabes cómo habilitarlo fácilmente).
Entonces, el problema no es con las personas que son "lo suficientemente buenas", sino para todos los demás, que pueden venir a Linux desde otro mundo de la informática y el primer impacto es con Ubuntu (y somos muchos).

Si no es un experto y no sabe exactamente qué rootes y cómo manejarlo adecuadamente, no quiere ni necesita tenerlo habilitado (y se arriesga, por ejemplo, a hacer un inicio de sesión gráfico con él).
Es mucho mejor aprender cómo hacer las cosas del lado seguro y luego seguir por un camino más difícil y más peligroso, que comenzar directamente con el camino difícil y luego dañar su instalación / estación de trabajo, frustrarse y tal vez no pueda recuperar un trabajo completo sistema.
En general, prevenir es mucho mejor que curar.

dadexix86
fuente