En informática, el superusuario es una cuenta de usuario especial que se utiliza para la administración del sistema . Dependiendo del sistema operativo (OS), el nombre real de esta cuenta puede ser root , administrator , admin o supervisor . En algunos casos, el nombre real de la cuenta no es el factor determinante; en sistemas tipo Unix, por ejemplo, el usuario con un identificador de usuario (UID) de cero es el superusuario, independientemente del nombre de esa cuenta; [1] y en sistemas que implementan un modelo de seguridad basado en roles , cualquier usuario con el rol de superusuario (o sus sinónimos) puede llevar a cabo todas las acciones de la cuenta de superusuario. El principio del mínimo privilegio recomienda que la mayoría de los usuarios y aplicaciones se ejecuten bajo una cuenta ordinaria para realizar su trabajo, ya que una cuenta de superusuario es capaz de realizar cambios irrestrictos, potencialmente adversos, en todo el sistema.
En sistemas operativos tipo Unix (como Linux ), root es el nombre convencional del usuario que tiene todos los derechos o permisos (sobre todos los archivos y programas) en todos los modos (monousuario o multiusuario). Los nombres alternativos incluyen baron en BeOS y avatar en algunas variantes de Unix. [2] BSD a menudo proporciona una cuenta toor ("root" escrito al revés) además de una cuenta root. [3] Independientemente del nombre, el superusuario siempre tiene un ID de usuario de 0. El usuario root puede hacer muchas cosas que un usuario normal no puede, como cambiar la propiedad de los archivos y vincularse a los puertos de red numerados por debajo de 1024.
El nombre root puede haberse originado porque root es la única cuenta de usuario con permiso para modificar el directorio raíz de un sistema Unix. Este directorio se consideró originalmente como el directorio de inicio de root , [4] pero el Estándar de Jerarquía del Sistema de Archivos UNIX ahora recomienda que el directorio de inicio de root sea /root . [5] El primer proceso que se inicia en un sistema tipo Unix , generalmente llamado init , se ejecuta con privilegios de root. Genera todos los demás procesos directa o indirectamente, que heredan los privilegios de sus padres. Solo un proceso que se ejecuta como root puede cambiar su ID de usuario por el de otro usuario; una vez que lo ha hecho, no hay vuelta atrás. Hacerlo a veces se llama eliminar privilegios de root y a menudo se hace como una medida de seguridad para limitar el daño de una posible contaminación del proceso. Otro caso es login y otros programas que piden credenciales a los usuarios y en caso de una autenticación exitosa les permiten ejecutar programas con privilegios de sus cuentas.
A menudo se recomienda que root nunca se use como una cuenta de usuario normal, [6] [7] ya que simples errores tipográficos al ingresar comandos pueden causar daños importantes al sistema. En su lugar, se debe usar una cuenta de usuario normal y luego se usa el comando su (usuario sustituto) o sudo (usuario sustituto do). El enfoque su requiere que el usuario conozca la contraseña de root, mientras que el método sudo requiere que el usuario esté configurado con el poder de ejecutar "como root" dentro del archivo /etc/sudoers , generalmente de manera indirecta al convertirse en miembro del grupo wheel , [8] adm , [9] admin o sudo .
Por varias razones, ahora se prefiere generalmente el enfoque sudo : por ejemplo, deja un registro de auditoría de quién ha utilizado el comando y qué operaciones administrativas realizó. [10]
Algunos sistemas operativos, como macOS y algunas distribuciones de Linux (en particular Ubuntu [6] ), otorgan automáticamente al usuario inicial creado la capacidad de ejecutarse como root a través de sudo , pero este está configurado para solicitarles su contraseña antes de realizar acciones administrativas. En algunos casos, la cuenta root real está deshabilitada de forma predeterminada, por lo que no se puede usar directamente. [6] En los sistemas operativos orientados a plataformas móviles, como Apple iOS y Android , el acceso de superusuario es inaccesible por diseño, pero generalmente se puede explotar el sistema de seguridad para obtenerlo. [ cita requerida ] En algunos sistemas, como Plan 9 , no hay superusuario en absoluto. [11]
En Windows NT y sistemas posteriores derivados de él (como Windows 2000 , Windows XP , Windows Server 2003 y Windows Vista / 7 / 8 / 10 / 11 ), debe haber al menos una cuenta de administrador (Windows XP y anteriores) o una capaz de elevar privilegios a superusuario (Windows Vista/7/8/10/11 a través del Control de cuentas de usuario ). [12] En Windows XP y sistemas anteriores, hay una cuenta de administrador incorporada que permanece oculta cuando existe una cuenta de administrador de usuario equivalente. [13] Esta cuenta de administrador incorporada se crea con una contraseña en blanco. [13] Esto plantea riesgos de seguridad ya que los usuarios locales podrían acceder a la computadora a través de la cuenta de administrador incorporada si la contraseña se deja en blanco, por lo que la cuenta está deshabilitada de forma predeterminada en Windows Vista y sistemas posteriores debido a la introducción del Control de cuentas de usuario (UAC). [13] Los usuarios remotos no pueden acceder a la cuenta de administrador incorporada.
Una cuenta de administrador de Windows no es exactamente equivalente a la cuenta raíz de Unix : la cuenta de administrador, la cuenta de administrador integrada y la cuenta de administrador de usuario tienen el mismo nivel de privilegios. La cuenta de usuario predeterminada que se crea en los sistemas Windows es una cuenta de administrador. A diferencia de las cuentas de administrador de macOS, Linux y Windows Vista/7/8/10, las cuentas de administrador en los sistemas Windows sin UAC no aíslan al sistema de la mayoría de los problemas del acceso raíz completo. Uno de estos problemas incluye una menor resistencia a las infecciones de malware. Para evitar esto y mantener una seguridad óptima del sistema en los sistemas Windows anteriores a UAC, se recomienda simplemente autenticarse cuando sea necesario desde una cuenta de usuario estándar, ya sea a través de una contraseña establecida en la cuenta de administrador integrada u otra cuenta de administrador.
En las cuentas de administrador de Windows Vista/7/8/10/11, aparecerá un mensaje para autenticar la ejecución de un proceso con privilegios elevados. Por lo general, no se requieren credenciales de usuario para autenticar el mensaje del UAC en las cuentas de administrador, pero la autenticación del mensaje del UAC requiere ingresar el nombre de usuario y la contraseña de un administrador en las cuentas de usuario estándar. En las cuentas de administrador de Windows XP (y sistemas anteriores), no se requiere autenticación para ejecutar un proceso con privilegios elevados. Esto plantea un riesgo de seguridad que llevó al desarrollo del UAC. Los usuarios pueden configurar un proceso para que se ejecute con privilegios elevados desde cuentas estándar configurando el proceso para "ejecutarse como administrador" o utilizando el comando runas y autenticando el mensaje con las credenciales (nombre de usuario y contraseña) de una cuenta de administrador. Gran parte del beneficio de la autenticación desde una cuenta estándar se anula si las credenciales de la cuenta de administrador que se utilizan tienen una contraseña en blanco (como en la cuenta de administrador integrada en Windows XP y sistemas anteriores), por lo que se recomienda configurar una contraseña para la cuenta de administrador integrada.
En Windows NT , 2000 y versiones posteriores, el usuario root es la cuenta de administrador. [14]
En Novell NetWare , el superusuario se llamaba "supervisor", [15] más tarde "admin".
En OpenVMS, "SYSTEM" es la cuenta de superusuario del sistema operativo.
En muchos sistemas operativos antiguos, en computadoras destinadas a uso personal y doméstico, cualquiera que usara el sistema tenía privilegios completos. Muchos de estos sistemas, como DOS , no tenían el concepto de múltiples cuentas, y aunque otros como Windows 95 sí permitían múltiples cuentas, esto era solo para que cada uno pudiera tener su propio perfil de preferencias: todos los usuarios seguían teniendo control administrativo completo sobre la máquina.