Cuando hablamos de root en Android, hablamos de un método que eliminar todas las protecciones (por llamarlo de una forma que se entienda fácilmente) del sistema y que permiten hacer cambios en el dispositivo que, con ellas sería imposible. Esta protección, no se implementa para limitar las posibilidades de modificación que tienen los usuarios sobre sus dispositivos (que también), sino para evitar que se realicen cambios en el sistema que ponga en peligro su integridad y funcionamiento.
Si hablamos de Linux, a diferencia de Android, donde el dispositivo viene de serie con el sistema operativo y la correspondiente capa de personalización de cada fabricante, los usuarios somos los que instalamos la distro que queremos utilizar en nuestro equipo, por lo que no tenemos ninguna limitación a la hora de hacer modificaciones en el equipo, modificaciones que afecten a cualquier a cualquier apartado del sistema.
-¿Qué es root?
El usuario root en Linux es el usuario que tiene acceso administrativo a todo el sistema y puede realizar cualquier tipo de modificación para modificar su funcionamiento. No es recomendable iniciar sesión con permisos root si no tenemos muy claro que es lo que estamos haciendo si no queremos poner en riesgo la estabilidad del sistema si realizamos algún cambio.
Si queremos realizar algún cambio en el sistema, no hace falta iniciar sesión con permisos de administrador, sino que podemos pedir permiso utilizando la aplicación sudo para realizar tareas administrativas introduciendo la cuenta de nuestro usuario para confirmar que somos los legítimos usuarios de esa cuenta y no se trata de una tercera persona que ha tenido acceso a nuestro equipo. También podemos utilizar el comando si necesitamos mantener en el tiempo los privilegios root.
-Tipos de usuarios en Linux
Una de las prestaciones más llamativas de Linux es su control de usuarios, control de usuarios con el que podemos gestionar en todo momento el poder de acción que tienen los usuarios. Básicamente, en Linux podemos encontrar 2 tipos de usuarios:
- root. Este usuario tiene poder y control absoluto sobre el equipo y puede hacer y deshacer a su antojo sin ningún tipo de limitación más allá de sus conocimientos. Este tipo de usuario es, si lo comparamos con Windows, el usuario administrador, aunque en Linux tenemos mucho más poder de decisión que en Windows.
- Usuario. Los usuarios normales, son las cuentas de usuarios en las que se establecen una serie de limitaciones en base a sus necesidades y prioridades, sin tener la opción de realizar tareas administrativas reservadas a las cuentas root. Ese tipo de usuarios tienen limitadas las opciones a la hora de instalar aplicaciones o crear directorios en el sistema. Sin embargo, pueden obtener permisos root para realizar cualquier cambio a través de los comandos sudo o su.
-¿Cuándo debemos utilizar Sudo y cuando utilizar Su?
Una vez tenemos claro que es root y cuáles son las posibilidades de estas cuentas y las limitaciones de las cuentas de usuario, toca hablar de los comandos sudo y su, comandos que nos permite obtener permisos de administrador para realizar cambios en el sistema.
Sudo
Las cuentas de usuarios normales tienen limitada la posibilidad de instalar aplicaciones de fuera del sistema. El comando Sudo nos permite ejecutar un comando como root, es decir, con privilegios totales sobre el sistema, pero sin dejar de ser un usuario normal. Debemos acompañar esta palabra siempre antes de cualquier operación.
Por ejemplo, si queremos instalar una aplicación, como usuarios normales no podemos realizar este proceso. Pero, si utilizamos el comando sudo en primer lugar, vamos a obtener permisos root para realizar esa operación. Una vez se ha realizado, volveremos a tener las limitaciones asociadas a una cuenta de usuario normal. Siempre que utilicemos el comando Sudo, tendremos que introducir la contraseña root.
sudo apt install gparted
Si queremos instalar otra aplicación, tendremos que preceder el comando, nuevamente, de la palabra sudo e introducir la contraseña de administrador.
Su
Mientras que Sudo nos permite obtener permisos de administrador para realizar determinadas tareas administrativas como instalar aplicaciones, crear usuarios y demás, una vez se ejecuta el comando, volvemos a ser usuarios normales. Si tenemos que realizar diversas operaciones en el equipo para las que sean necesarios privilegios de administrador, y no queremos añadir sudo en cada comando, haremos uso de su e introducimos la contraseña root.
su
A partir de este momento, tenemos privilegios root, por lo que podemos hacer cualquier cambio en el sistema sin necesidad de utilizar sudo. Siendo el ejemplo anterior, para instalar la aplicación Gparted, una vez tenemos permisos root, en lugar de preceder el comando de instalación de la palabra sudo, podemos hacerlo sin ella.
apt install gparted
Cuando hemos dejado de necesitar privilegios root, es recomendable salir de este modo para evitar realizar cualquier cambio de forma no intencionada, se utiliza el comando exit.
exit
Si queremos cambiar de usuario, el comando a utilizar es el siguiente.
su nombrecuentausuario
-Desactivar la cuenta root en Linux
Si utilizamos un equipo con Linux que diferentes cuentas de usuario cabe la posibilidad de que la contraseña root acabe circulando libremente por nuestro entorno sin darnos cuenta. Con esta contraseña en manos no deseadas, los usuarios pueden hacer cualquier tipo de cambios e instalar aplicaciones en el sistema que no son necesarias para el día a día. La solución a este problema, siempre y cuando corramos ese riesgo, pasa por desactivar la cuenta root en Linux.
De esta forma, sin una cuenta root, los usuarios no podrán hacer uso ni de sudo ni de su para habilitar los privilegios de administrador en el sistema repercutiendo positivamente en la seguridad del equipo de trabajo. Para desactivar la cuenta root, debemos abrir terminal e introducir el siguiente comando
sudo passwd l root
De esta forma, el equipo bloquea este usuario para que no se pueda utilizar ni con el mando su ni con sudo. Si queremos recuperar nuevamente la cuenta de usuario, tendremos que configurar una nueva.
-Recuperar contraseña root
Tanto si hemos deshabilitado la cuenta root como si hemos perdido la contraseña maestra, Linux, nos permite volver a generar una nueva contraseña a través de dos métodos: desde el GRUB de arranque o bien utilizando un LiveCD con una distribución Linux.
Con el GRUB
Una vez se muestre el GRUB de arranque, debemos acceder las opciones avanzadas, una opción que no se encuentra en la pantalla principal y, seguidamente, seleccionar Recovery Mode para, a continuación, seleccionar la opción root para una consola de superusuario.
Desde la línea de comando, lo primero que haremos es montar la unidad con permisos de escritura con el comando
mount -o rw, remount /
A continuación, utilizaremos el comando passwd para establecer una nueva contraseña
passwd root
Finalmente, con los comandos utilizamos los comandos sync y reboot para reiniciar el equipo y que se apliquen los cambios.
sync
[coche]reboot[/code]
Desde un LiveCD
Para recuperar la contraseña root, podemos utilizar cualquier distro LiveCD, aunque desde SoftZone recomendamos Ubuntu. Una vez hemos iniciado el equipo con esta distribución, en la pantalla de bienvenida, seleccionamos español para que la interfaz se muestre en nuestro idioma y, seguidamente en Probar Ubuntu.
Seguidamente, abrimos la aplicación Terminal e introducimos el siguiente comando:
sudo su
A continuación, debemos identificar la partición donde se encuentra la distribución Linux queremos recuperar la contraseña root. Par hacerlo utilizaremos el comando:
fdisk -l
En el siguiente paso, debemos montar la unidad del sistema:
mkdir /mnt/recover
mount /dev/sda1 /mnt/recover
En nuestro caso, la partición es sda1. Si en nuestro equipo es diferente, debemos modificar sda1 por la partición correspondiente a nuestro equipo. Una vez hemos montado la unidad, ya podemos empezar a trabajar con ella para recuperar la contraseña root. Lo primero es dirigimos al directorio de recuperación con el comando:
chroot /mnt/recover
Y, finalmente, utilizamos el comando passwd para introducir una nueva contraseña root
passwd root