¿Qué es «root» en Linux?

Una computadora portátil Linux al estilo de Ubuntu.
fatmawati achmad zaenuri / Shutterstock.com

El usuario root es la entidad más poderosa del universo Linux con poderes ilimitados, para bien o para mal. Crear un usuario Entendido. ¿Aniquilar un sistema de archivos? Vaya, también lo tengo.

La historia del origen

El usuario root es el superusuario de Linux. Pueden, literalmente, hacer cualquier cosa. Nada está restringido o prohibido root. Si son un superhéroe o un supervillano depende del usuario humano que asume el papel de administrador del sistema. Los errores cometidos por el usuario root pueden ser catastróficos, por lo que la cuenta root debe utilizarse exclusivamente con fines administrativos.

El concepto de usuario root fue heredado de Unix, que tenía un usuario root como superusuario administrativo. Pero no se sabe con certeza de dónde viene el nombre «raíz». Algunas personas piensan que provino del sistema operativo Multics , que es anterior a Unix.

Ken Thompson y Dennis Ritchie , dos de los arquitectos y autores más importantes de Unix, habían trabajado anteriormente en Multics. Multics tenía un sistema de archivos que comenzaba en un punto llamado directorio raíz o «/», y todos los demás directorios y subdirectorios se ramificaban hacia abajo y hacia afuera desde la raíz como un árbol invertido. Es el mismo tipo de estructura de árbol adoptada por Unix. Entonces, ¿quizás Unix también adoptó al usuario root de Multics?

Al  buscar en la documentación técnica de Multics, se  descubre una multitud de referencias a volúmenes lógicos raíz, volúmenes físicos raíz, tarjetas raíz y el directorio raíz. Pero no se menciona una cuenta de usuario root o un usuario llamado «root».

Otra teoría es que en los primeros días de Unix, la carpeta de inicio del superusuario era la raíz «/» del sistema de archivos. El superusuario necesitaba un nombre. El término «usuario root» se había utilizado en lugar de un nombre oficial, pero el término se mantuvo y se convirtió en el nombre oficial.

Relacionado:  Cómo agregar el modo de intérprete del Asistente de Google a su pantalla de inicio

Eso parece más probable, pero nadie parece ser capaz de decir con certeza cómo obtuvo su nombre el usuario root.

El comando sudo

En cualquier sistema operativo, es una buena práctica reservar el superusuario solo con fines administrativos y utilizar una cuenta de usuario normal el resto del tiempo. De hecho, la mayoría de las distribuciones de Linux modernas no le permitirán iniciar sesión como usuario root.

Por supuesto, esto es Linux, por lo que puede configurarlo para permitir que el usuario root inicie sesión. Pero cuanto menos tiempo pase conectado root, mejor. Además de protegerse de los desastres derivados de errores tipográficos, si no puede iniciar sesión como root, nadie más podrá hacerlo . Cualquiera que obtenga acceso no autorizado a su sistema no podrá iniciar sesión como root, lo que limita el daño que puede hacer.

Pero si iniciar sesión como rootestá deshabilitado, ¿cómo administra su computadora Linux? Bueno, para eso es el sudocomando. No requiere que el usuario root inicie sesión. Le otorga rootpoderes temporalmente . Es como recoger el martillo de Thor, Mjolnir, y recibir temporalmente los poderes de Thor. Pero solo puedes levantar el martillo si eres digno. Del mismo modo, no cualquiera puede usar el sudocomando. El sudocomando solo te otorga rootpoderes si has sido considerado digno y agregado a la lista de sudoers.

Hay otro comando similar a sudollamado su. Con sudo, se autentica con su propia contraseña. Con su, se autentica utilizando la contraseña del usuario root. Esto es significativo de dos formas. En primer lugar, significa que debe asignar una contraseña al usuario root para que la utilice su. De forma predeterminada, el usuario root no tiene contraseña y esto ayuda con la seguridad. Si rootno tiene contraseña, no puede iniciar sesión como root.

En segundo lugar, si establece una contraseña de root, todos los que vayan a utilizar el sucomando deben conocer la contraseña. Y compartir contraseñas es un no-no de seguridad, y para la contraseña de root, aún más. Cualquiera de las personas que conozca la contraseña de root puede decírselo a otra persona. Si necesita cambiar la contraseña de root, debe comunicar la nueva contraseña a todas las personas que necesiten conocerla.

Relacionado:  Nvidia lanza controladores de GPU Linux de código abierto, con una trampa

Es mucho más seguro usar la lista de sudoers para restringir quién puede usar sudoy permitir que cada persona privilegiada use sus contraseñas individuales para autenticarse.

Usando sudo

El archivo “/ etc / shadow” contiene el nombre de usuario de cada cuenta en su computadora Linux, junto con otros datos, incluida la contraseña cifrada de cada cuenta, cuándo se cambió la contraseña por última vez y cuándo caduca. Debido a que contiene información confidencial, solo puede ser leído por root.

Si intentamos usar el wccomando para leer las líneas, palabras y caracteres en el archivo de sombra, se nos negará el permiso.

wc / etc / shadow

Si estamos en la lista de sudoers y usamos el mismo comando con sudoal comienzo de la línea, se nos pedirá nuestra contraseña y el comando se ejecutará por nosotros. Si eres el único usuario en tu computadora Linux, automáticamente se te agregará a la lista de sudoers cuando se instale el sistema.

sudo wc / etc / shadow

Debido a que estamos ejecutando el comando como root, el wccomando se ejecuta. Nadie niega root.

El sudocomando solía significar «superusuario». Se mejoró para permitirle ejecutar un comando como cualquier usuario, por lo que se renombró como «usuario sustituto hacer». En realidad, el comando se ejecuta como si el otro usuario lo hubiera ejecutado. Si no especifica un nombre de usuario, por sudodefecto usa root. Si desea utilizar un usuario diferente, utilice la -uopción (usuario).

Podemos ver que los comandos se ejecutan como otro usuario usando el whoamicomando.

quién soy
sudo whoami
sudo -u mary whoami

Ejecutando como root sin usar su

El problema sudoes que tienes que usar «sudo» al comienzo de cada comando. Si solo está escribiendo uno o dos comandos, no es gran cosa. Si tiene una secuencia más larga de comandos para ejecutar, puede resultar tedioso. Puede ser tedioso, pero actúa como una trampa de seguridad útil para rootlos poderes, y usted tiene que quitarse conscientemente la seguridad cada vez.

Relacionado:  Cómo habilitar el teclado táctil en Windows 11

Hay una manera de «iniciar sesión» de forma eficaz, ya root que no utiliza suy no requiere que el usuario root tenga una contraseña.

Advertencia: tenga cuidado cuando utilice este método. Cada comando que emita se ejecutará felizmente, sin preguntas, incluso si es destructivo.

Usar sudopara ejecutar un shell Bash abre un nuevo shell con rootcomo usuario.

sudo bash

Tenga en cuenta que el símbolo del sistema cambia. El carácter final del mensaje es ahora un hash «#» en lugar de un carácter de dólar «$».

La forma en que se muestra el cuerpo del símbolo del sistema varía de una distribución a otra. En Ubuntu, se nos informa que el usuario es rooty se muestra el nombre de la computadora y el directorio de trabajo actual. El color del mensaje también cambia.

Como estamos root, podemos ejecutar comandos que normalmente requerirían el uso de sudo.

wc / etc / shadow

Para salir del shell del usuario root, presione «Ctrl + D» o escriba «salir» y presione «Enter».

Salida

Menos Superman, más Clark Kent

Si está en la lista de sudoers, tiene superpoderes sobre su sistema Linux. Solo recuerda, Superman pasa más tiempo como su alter ego de modales apacibles que en su capa roja.

Utilice su cuenta de usuario habitual tanto como sea posible. Cambie rootcuando realmente lo necesite.