Cómo habilitar el usuario root en Mac

No es necesario habilitar el root en un Mac. Y no deberías hacerlo si valoras tu seguridad. Es una idea mucho mejor usar sudo, sobre todo debido al principio ampliamente aceptado de mínimo privilegio, pero también por otras buenas razones.

Mínimo privilegio

Siempre es una buena idea correr con el menor número de privilegios escalados como sea posible, porque (a) reduce la posibilidad de accidentes de escalada de privilegios, y (b) reduce el impacto de los accidentes de escalada de privilegios que ocurren. Si necesita escuchar esto de una fuente más creíble que un tipo en Internet, esto es lo que Apple tiene que decir al respecto (de la página 61 de la Guía de Configuración de Seguridad de Mac OS X):

A menos que necesite acceso de administrador para tareas específicas de mantenimiento del sistema que no se pueden lograr mediante la autenticación con la cuenta del administrador mientras se inicia la sesión como un usuario normal, siempre inicie sesión como un usuario no administrador. Cierre la sesión de la cuenta de administrador cuando no esté utilizando el ordenador como tal. Nunca navegue por la web o consulte el correo electrónico mientras esté conectado a una cuenta de administrador.

Si está conectado como administrador, se le conceden privilegios y habilidades que podría no necesitar. Por ejemplo, puede modificar potencialmente las preferencias del sistema sin que se le pida que se autentique. Esta autenticación evita una salvaguarda de seguridad que impide la modificación maliciosa o accidental de las preferencias del sistema.

Cuando se inicia la sesión como administrador (o root), todo lo que se hace y cada programa que se ejecuta (directa o indirectamente, a propósito o sin querer) -incluyendo cada uno de los diversos procesos necesarios para hacer funcionar la interfaz de usuario del sistema- se ejecuta con privilegios administrativos (o root), lo que significa que cada uno de esos procesos tiene automáticamente acceso sin restricciones a más partes del sistema que las cuentas de usuario estándar. Esto significa que si usted comete un error al cambiar, mover o eliminar archivos del sistema, o ejecutar programas, o peor aún, si sin saberlo ejecuta un troyano / gusano o hay un fallo de seguridad en uno de esos procesos, puede dañar y alterar los archivos críticos del sistema con poca o ninguna protección o reconocimiento del sistema.

Aunque ciertamente podría utilizar una cuenta administrativa diariamente sin efectos adversos, incluso durante meses o años sin incidentes, es el único momento en que importa que usted puede querer preocuparse. Por ejemplo, no puedo decirle cuántas veces he visto a los usuarios de Mac pedir ayuda porque accidentalmente borraron algún archivo en su sistema que no podrían haber eliminado tan fácilmente si no hubieran estado utilizando los privilegios de escalada en ese momento.

Aunque la mayoría de los archivos en su carpeta de inicio son de su propiedad, muchos archivos y carpetas en Mac OS X son propiedad del grupo «admin», del que cada cuenta administrativa es un miembro. Cuando inicias la sesión como usuario normal, Mac OS X no te permite modificar esas partes del sistema sin introducir primero el nombre de usuario y la contraseña de una cuenta administrativa. Esta es una capa adicional de seguridad que no tendrá si se ejecuta como administrador. Por el contrario, cuando se inicia la sesión como administrador, Mac OS X le permite cambiar, mover y eliminar dichos archivos y carpetas sin cuestionar. Y cuando se inicia la sesión como root, se le da aún más poder, ya que el sistema le permite cambiar *todos* los archivos de todo el sistema sin preguntar ni preguntar.

Creo que la razón por la que Apple no da este consejo a todos los usuarios de Mac es probablemente porque la larga explicación necesaria para transmitir las razones y cómo hacerlo probablemente no sería muy bien recibida. La mayoría de los usuarios no saben lo suficiente sobre temas de seguridad como para entenderlo y, francamente, la mayoría no quiere ser molestada. Apple probablemente podría automatizar la creación de una cuenta administrativa inicial y de una cuenta no administrativa, pero si los usuarios no están bien informados sobre las cuestiones relacionadas, no hay garantía de que las utilicen correctamente. Hay otras buenas razones para utilizar sudo en lugar de iniciar sesión como root:

Seguridad para múltiples usuarios

Dado que la autenticación sudo utiliza la contraseña del usuario en lugar de la contraseña de root, varios usuarios pueden utilizar sudo sin compartir la contraseña de root.

Pensamiento

Cada comando sudo requiere autenticación, lo que hace que te detengas a pensar en lo que estás haciendo. Por el contrario, cuando se inicia la sesión como root, los comandos no requieren ninguna autenticación, lo que significa que es más fácil que se produzcan errores.

Ticketing

Cuando se invoca por primera vez sudo y se autentifica con sus credenciales, se le concede un ticket que expira después de un cierto número de minutos (por lo general un valor predeterminado de 5 minutos). Los comandos posteriores actualizan el temporizador durante otros 5 minutos. Si no se ha emitido ningún comando después de que expire este temporizador de 5 minutos, los comandos posteriores requieren que se vuelva a autenticar. Esto significa que si usted se aleja de su computadora olvidando que tiene una sesión de sudo abierta en una ventana de terminal, alguien más no podrá usar su autenticación para hacer cosas con sudo. Esta protección no existe cuando se inicia una sesión con la cuenta de root.

Cada comando que se introduce cuando se utiliza sudo se registra en el registro del sistema, lo que permite al administrador (usted) ver quién emitió qué comandos en su sistema. Esto es preferible desde el punto de vista de la seguridad, pero también es extremadamente útil para la resolución de problemas. Por el contrario, los comandos introducidos cuando se ha iniciado la sesión como root no se registran en el registro del sistema.

Script kiddies

Los scripts automatizados utilizados por muchas piezas de malware asumen que hay una cuenta root habilitada e intentan utilizar la fuerza bruta para adivinar la contraseña de esa cuenta para obtener acceso root a cualquier máquina en Internet. Tener la cuenta de root de Mac OS X deshabilitada (como lo está en cualquier instalación por defecto) previene esto por completo, ya que elimina efectivamente ese vector de ataque.

Estoy seguro de que hay otras razones que no se me han ocurrido en este momento; pero basta con decir que por todas las razones anteriores no hay una buena razón para habilitar la cuenta de root en Mac OS X cuando sudo funciona bien y es muy poco molesto de usar.