Uno de los pilares fundamentales de Linux es su seguridad. Este sistema operativo, como otro cualquiera, hace uso de las contraseñas para evitar el acceso de usuarios no deseados al sistema. Cada usuario tiene su propia contraseña, además de un complejo nivel de privilegios que definen qué puede hacer, qué no y a qué partes del sistema operativo tendrá acceso y a cuáles no. Y por encima de todas las cuentas de usuario está la cuenta maestra, la cuenta de administrador: root.
La cuenta de root de los sistemas operativos Linux es la cuenta con mayor nivel de privilegios sobre el sistema. Esta cuenta es la equivalente a SYSTEM en los sistemas Windows, es la que tiene acceso a todo por encima de todo. Y, por lo tanto, es la que mejor se debe proteger, ya que todo aquel que tenga acceso a esta cuenta tendrá control total sobre el sistema operativo.
Si por algún motivo perdemos la cuenta de root, la verdad es que perderemos el control sobre nuestro ordenador. En caso de que esto ocurra, antes de optar por lo radical y reinstalar el sistema operativo (algo inviable en muchas situaciones), a continuación, os vamos a explicar cómo recuperar esta contraseña para recuperar el control sobre el PC.
ADVERTENCIA DE SEGURIDAD Y RESPONSABILIDAD
Este procedimiento está destinado exclusivamente a la recuperación de acceso en sistemas de tu propiedad o sobre los que tienes autorización explícita. El acceso no autorizado a sistemas informáticos ajenos constituye un delito de descubrimiento y revelación de secretos, tipificado en el Artículo 197 del Código Penal Español. Procede con cautela y asegúrate de seguir las políticas de seguridad de tu organización.
Diferencias entre root, su y sudo
Aunque para muchos estos 3 conceptos pueden parecerles lo mismo, en realidad hay bastantes diferencias entre ellos que debemos conocer, ya que dependiendo de lo que queramos hacer, tenemos que utilizar unos u otros. En Windows, únicamente tenemos que utilizar los permisos de Administrador para poder realizar cambios en el equipo.
El primero del que vamos a hablar es root. Root es la cuenta de superusuario de Linux, la que posee privilegios absolutos para hacer y deshacer en el sistema. Tan solo este usuario puede realizar configuraciones a bajo nivel, y es una de las medidas de seguridad y protección más básicas de los sistemas Linux. El resto de los usuarios siempre tendrán un nivel de privilegios inferior. Y, además, no se recomienda nunca iniciar sesión con este usuario, sino usarlo a través de otros comandos para ganar privilegios.
Su, por otro lado, es el acrónimo de «substitute user», es decir, nos permite cambiar de usuario sin cerrar sesión con el usuario actual. Este comando se utiliza cuando tenemos que ejecutar comandos con otro usuario con más privilegios (como root, por ejemplo) desde terminal, pero no queremos salir del nuestro. Con el comando «su», seguido del nombre del usuario, ejecutaremos los comandos directamente con su usuario.
Por último, vamos a hablar de sudo. Este comando, super user do, nos permite ejecutar programas y comandos con el nivel de privilegios de superusuario, pero con una serie de restricciones de seguridad definidas dentro de /etc/sudoers. Este es el comando más utilizado para trabajar con modo root, ya que es el más cómodo, sencillo y, por supuesto, recomendado.
Como vemos, al final el más importante de los tres es root. Los otros dos básicamente son «formas» de conseguir sus permisos de forma temporal sin necesidad de utilizar la cuenta root. Si no conocemos, o hemos olvidado, la contraseña de root de cualquier distro Linux no podremos usar ni Su ni Sudo, por lo que previamente debemos resetearla y establecer una nueva contraseña, un proceso muy sencillo de realizar siguiendo los pasos que os mostramos a continuación.
Cómo restablecer la contraseña de root en Linux
Este proceso no es muy complicado, y podemos hacerlo de dos formas distintas: usando un Live CD o desde el gestor de arranque GRUB de nuestra distro.
Antes de empezar, queremos recordar que en equipos con UEFI y Secure Boot activado, es posible que tengamos que pulsar una tecla específica (como ESC, F2 o F12) durante el arranque para acceder al menú de GRUB. Si Secure Boot bloquea el acceso al modo de recuperación, deberás desactivarlo temporalmente en la configuración de la BIOS/UEFI.
Usar un Live CD para recuperar el control de Linux
La primera de las recomendaciones que os vamos a hacer es recurrir a un Live CD de una distribución Linux para realizar esta tarea. Este método es el más sencillo, rápido e intuitivo que podemos usar para este proceso.
Lo primero que debemos hacer es crear un Live CD de Ubuntu en una memoria USB para poder arrancar el ordenador desde ella. También valdría con cualquier otra distro que tenga Modo Live.
Cuando arranquemos el ordenador, elegiremos la opción «Probar Ubuntu» y esperaremos a que cargue el sistema en la memoria RAM. Recordamos que el Modo Live no hace cambios en los discos duros, por lo que nuestros datos estarán seguros.
Una vez que tengamos ya nuestro Ubuntu cargado, el siguiente paso será abrir un terminal. Esto podemos hacerlo desde la lista de aplicaciones o con el atajo de teclado «Ctrl + Alt + T«.
Una vez tengamos el terminal delante, ejecutamos el siguiente comando para conseguir los privilegios de root en Ubuntu Live:
sudo su
El siguiente paso será identificar la partición en la que tenemos instalado nuestro Linux. Para ello, ejecutamos el siguiente comando:
fdisk -l
En nuestro caso es /dev/sda. Ahora el siguiente paso es montar la partición del sistema para poder trabajar con ella usando los siguientes comandos.
mkdir /mnt/recover
mount /dev/sda1 /mnt/recover
Ya tenemos el Linux al que no podemos acceder dentro del Live Linux que acabamos de montar. Ahora ejecutaremos el siguiente comando para empezar a trabajar sobre este directorio:
chroot /mnt/recover
El comando chroot (change root) crea un entorno enjaulado que cambia temporalmente el directorio raíz aparente del proceso actual y sus procesos hijos. Esto permite que los comandos ejecutados «crean» estar operando directamente en el sistema instalado en el disco duro, aunque físicamente se estén ejecutando desde el Live CD. Al hacer chroot al sistema montado, los comandos como passwd root modifican los archivos de contraseñas del sistema operativo instalado (/etc/shadow, /etc/passwd) en lugar de los archivos temporales del Live CD, garantizando que los cambios persistan tras el reinicio y sean efectivos en el sistema operativo principal.
Ahora ejecutamos el siguiente comando para cambiar la contraseña de root en nuestro Linux:
passwd root
Si queremos cambiar la contraseña de cualquier otro usuario, podemos usar el mismo comando, pero cambiando «root» por el nombre del usuario en cuestión.
Ya hemos cambiado la contraseña de root. Ahora solo nos queda ejecutar «exit» para salir del chroot, el comando «umount /mnt/recover» para desmontar la partición del sistema que hemos montado y de nuevo «exit» para salir de root.
Ahora reiniciamos el ordenador y listo. La nueva contraseña de root ya está disponible para poder trabajar con ella.
Recuperar la contraseña de administrador desde GRUB
Si no tenemos una imagen Live de Ubuntu a mano y necesitamos recuperar la contraseña urgentemente, hay otra forma de hacerlo: a través de GRUB.
Para ello, reiniciaremos el ordenador, pero, en vez de entrar en nuestro Linux, nos quedaremos en el gestor de arranque, que probablemente sea GRUB. En él, seleccionaremos la opción «Opciones avanzadas para Ubuntu«. Y en la nueva pantalla que nos aparecerá elegiremos una de las entradas «Recovery Mode» que aparecerán.
Veremos el menú de recuperación de nuestro Linux. De todas las opciones que aparecen, la que nos interesa es la marcada como «root», ya que nos permitirá abrir una consola de superusuario.
Ya estamos dentro de una consola de recuperación con permisos de superusuario. Lo primero que haremos será montar la raíz de nuestro Linux con permisos de escritura (ya que por defecto solo tiene permiso de lectura) para poder trabajar con ella:
mount -o rw,remount /
Cuando Linux arranca en modo de recuperación, el sistema de archivos raíz se monta automáticamente en modo de solo lectura como medida de protección preventiva. Esta configuración evita modificaciones accidentales o corrupción de datos del sistema mientras se realizan tareas de diagnóstico y reparación, garantizando la integridad de los archivos críticos del sistema operativo. El comando mount -o remount,rw / permite cambiar dinámicamente el punto de montaje de la partición raíz de solo lectura a lectura-escritura, habilitando así las modificaciones necesarias como el cambio de contraseñas sin requerir un reinicio completo del sistema.
Una vez hecho esto, ya solo nos queda usar el comando passwd para cambiar la contraseña de nuestro Linux:
passwd root
Listo. Ahora ejecutaremos los comandos «sync» y «reboot» para que los cambios terminen de aplicarse en el disco duro y reiniciar el ordenador.
Cuando arranque el sistema, ya podremos usarlo con la nueva contraseña de root que acabamos de establecer.
Usar Arch Linux
Si estamos usando Arch Linux, el proceso para la recuperación de la contraseña de superusuario, o root, en esta distro es diferente. Incluso, si tenemos conocimientos ya dentro de este sistema, incluso podríamos decir que más rápida y sencilla. Esta es la distribución Linux más utilizada por expertos en seguridad (incluidos hackers) por el gran número de funciones que incluye en cuanto a seguridad de todo tipo de tipo.
Con un Live-CD
Si tenemos un Live-CD a mano, lo primero que haremos será arrancar el PC con él. Y, una vez que estemos en el TTY, montaremos la partición «root» de nuestro sistema principal, el que no podemos arrancar.
Una vez montada, lo que haremos será ejecutar el siguiente comando:
passwd --root PUNTO_MONTAJE NOMBRE_USUARIO
Seguimos los pasos que nos aparecerán en la pantalla. Una vez cambiada la contraseña, simplemente desmontamos la partición de root del sistema, reiniciamos el PC, y ya podremos entrar a él con la nueva contraseña que le hayamos establecido.
Como init
Lo que debemos hacer es arrancar el sistema usando el parámetro «init=/bin/bash» en el Kernel. Cuando arranca Arch, el sistema de archivos de root estará montado como «solo lectura». Le cambiamos los permisos para montarlo como «lectura/escritura» ejecutando el comando:
mount -n -o remount,rw /
Una vez montado, usaremos el comando «passwd» para crear una nueva contraseña para el usuario root. Tras cambiarla, simplemente ejecutamos «reboot -f» para reiniciar, y listo.
Desde SUDO
Si tenemos instalado SUDO, y configurados los permisos de grupo correctamente, podremos cambiar la contraseña de root de nuestra distro Arch Linux ejecutando simplemente el siguiente comando:
sudo passwd root
Cómo evitar que recuperen la contraseña de root
Como vemos, cualquier usuario podría romper la contraseña de superadministrador de nuestro Linux y conseguir acceso total a él. Simplemente necesitaría tener acceso físico al PC, y que el ordenador arranque desde una memoria para cargar la imagen Live, o simplemente tener acceso al GRUB del PC.
Si queremos reforzar la seguridad de nuestro ordenador podemos recurrir a una de las siguientes técnicas. En primer lugar, podemos poner una contraseña a la BIOS UEFI del PC para evitar que nadie, sin la contraseña, pueda iniciar sesión. Pero esta contraseña se puede borrar relativamente fácil quitando la pila de la placa base ya que es la encargada de mantener tanto la hora como todos los datos de configuración de la placa, independientemente del sistema operativo que lo gestione, ya esa Windows o cualquier distribución Linux.
Para una protección robusta contra el acceso físico no autorizado, la estrategia más efectiva es implementar el cifrado completo de disco (FDE) utilizando LUKS (Linux Unified Key Setup). Durante la instalación de la mayoría de las distribuciones, puedes seleccionar esta opción. Un disco cifrado con una frase de contraseña fuerte (más de 15 caracteres con mezcla de tipos) hace que los datos sean completamente ilegibles sin la clave, invalidando los métodos de recuperación descritos.
Para evitar este tipo de problemas, en lugar de cifrar el disco donde vamos a instalar Linux, es recomendable crear una partición donde vayamos almacenar todos los datos y cifrarla. De esta forma, si olvidamos la contraseña de cifrado, únicamente nos vamos a tener que preocupar por volver a formatear esa partición, no todo el equipo para volver a instalar la distribución Linux que queremos utilizar. Además, en estos casos, es más que recomendable hacer todos los días una copia de seguridad de todos los datos almacenados en su interior para que, en caso de olvidarla contraseña de cifrado, no perdamos todo el contenido almacenado en su interior. Cifrando el disco duro, nos veremos obligados a introducir la contraseña todos los días cada vez que queramos acceder a la unidad, por lo que es poco probable que se nos olvide, algo bastante habitual si la utilizamos de forma poco frecuente la contraseña.
Para hacer copias de seguridad incrementales en Linux, podemos utilizar rsync, disponible en la mayoría de las distribuciones Linux actuales. El funcionamiento de este comando es tan fácil como acompañarlo de la ruta donde se encuentran los archivos que queremos copiar y la ruta donde se realizará la copia de seguridad. Además, podemos utilizar una serie de parámetros para conservar los permisos, incluir todos los subdirectorios, eliminar los archivos de origen entre otras muchas. También podemos utilizar Crontab y programar para que las copias de seguridad se han todos los días a una determinada hora, cuando sabemos que estamos a punto de dejar de trabajar con nuestro equipo.
rsync -parámetros ruta-origen ruta-destino
De nada sirve hacer una copia de seguridad de todos los datos almacenados en la unidad Linux cifrada y dejar la copia de seguridad junto al ordenador sin ningún tipo de protección. Existe la posibilidad de cifrar la unidad donde vamos a hacer la copia de seguridad, pero, si hemos olvidado la primera, lo más probable es que también olvidemos la segunda, por lo que hacer la copia de seguridad en un disco duro cifrado de poco nos a servir. En este caso, lo mejor que podemos hacer es subir todos los archivos a una plataforma de almacenamiento en la nube o bien utilizar una de estas que ofrezca aplicación para Linux, como es el caso de MEGA, plataforma de almacenamiento que nos ofrece 20 GB de espacio totalmente gratuito y que, a diferencia de Google Drive y OneDrive, si ofrece una aplicación para Linux que nos permite sincronizar al instante todos los cambios que hagamos en los archivos almacenados en nuestro equipo.
Desactivar la cuenta de super usuario
Si no necesitamos esta cuenta, podemos desactivarla fácilmente en cualquier distro Linux usando el comando «passwd» que, seguramente, ya conozcamos. Para ello, no tenemos más que abrir un terminal y ejecutar en él el siguiente comando:
sudo passwd -l root
Esto hará que la contraseña de root quede deshabilitada y no se podrá iniciar sesión con este superusuario hasta que se configure una nueva contraseña. Si el comando passwd no funciona, por el motivo que sea, tenemos otra alternativa de conseguir lo mismo usando el comando «usermod».
sudo usermod -L root
Activar la cuenta de super usuario
Si tras desactivar la cuenta de superusuario en nuestra distribución Linux porque no nos hacía falta y no queríamos que cualquier persona con acceso al equipo pudiera cambiarla, pero nos hacen falta echar mano de los permisos de esta cuenta, podemos volver a activarla fácilmente un proceso que podemos hacer desde cualquier cuenta que utilicemos en nuestro equipo.
Lo primero que debemos hacer es acceder a la línea de comandos a través de la aplicación Terminal o utilizando el tajo de teclado Control + Mayús + T. A continuación, introducimos el siguiente comando:
sudo passwd root[/root]
Seguidamente, el sistema nos invitará a introducir la contraseña con la que queremos proteger esta cuenta, contraseña que debemos introducir dos veces de forma correcta. Una vez realizado este proceso, el sistema nos mostrará un mensaje en el que podemos leer "contraseña actualizada correctamente".
Para asegurarnos, podemos cerrar la sesión de la cuenta de usuario que estamos utilizando e iniciar nuevamente sesión con la cuenta root. También podemos utilizar el comando "sudo su" desde cualquier cuenta de terminal de la distribución Linux que tengamos instalada y comprobar si aparece la almohadilla # en la línea de comandos, almohadilla que indicativa de tener permisos de superusuario.
Protege Linux si tienes Dual Boot
Otra forma de la que pueden tomar el control de nuestro Linux es desde otro sistema operativo. Aunque tengamos nuestra distro correctamente configurada para evitar que nada ni nadie pueda entrar a ella sin permiso, siempre está la opción de entrar por otro lado. Por ejemplo, pueden extraer el disco duro del PC y montarlo en otro PC, o, si tenemos Dual Boot, acceder a él desde el otro sistema operativo, ya sea Windows o Linux.
Por muchos permisos que configuremos, si la otra persona intenta entrar en los datos de Linux desde Windows (usando WSL, o un programa para leer discos duros con el sistema de archivos EXT), podrá hacerlo sin prácticamente problemas. No hay forma sencilla de protegernos en este sentido. Una vez dentro, podría modificar el fichero passwd y conseguir una cuenta de superusuario en Linux. En este caso, la única solución sería cifrar el disco duro o, mejor, la partición donde se almacenan los archivos con los que trabajamos habitualmente como hemos comentado más arriba.
Por tanto, si realmente queremos proteger nuestros datos y nuestro disco duro, y evitar que nada ni nadie pueda tomar el control de dicha cuenta, lo único que nos queda por hacer es recurrir a técnicas de cifrado. De esta manera, sin la clave, no podrá acceder al disco duro. Pero claro, si perdemos la clave, nos vamos a encontrar con el mismo problema.
Configurar caducidad de contraseña
Otra medida de seguridad muy importante a la hora de proteger un sistema operativo es configurar una fecha de caducidad para la contraseña. De esta forma, lo que conseguimos es que, llegado cierto umbral de tiempo, el usuario en cuestión tenga que cambiar, obligatoriamente, la contraseña para seguir usando el PC.
Para ello, no tenemos más que usar el parámetro "-x" junto al comando "passwd" para especificar el número, en días, que queremos que tenga como validez la contraseña. De esta forma, podemos ejecutar el siguiente comando para forzar que la contraseña de "root" tenga que cambiarse obligatoriamente a los 30 días:
[code]passwd -x 30 root
Adicionalmente, si queremos, podemos usar el parámetro "-w" para elegir el número de días antes del cambio de contraseña cuando queremos que nos avise el sistema. De esta forma, usando "-w 7" empezaremos a ver un aviso 7 días antes de que el cambio sea obligatorio, y podremos, si queremos, adelantarnos a él. O, al menos, ir pensando en la nueva contraseña que vamos a usar.
Elegir una contraseña segura
El mejor método para elegir una contraseña segura no va necesariamente asociado a aporrear el teclado y que salgan números, símbolos y letras de forma aleatoria, aunque con eso conseguiremos una contraseña mucho más segura que cualquier otra que se nos pase por la cabeza y que nos pueda ofrecer cualquier generador de contraseñas. Podemos utilizar alguna de las diferentes aplicaciones disponibles para generar contraseñas de forma aleatoria, contraseñas que, además, vamos a poder almacenar en este tipo de aplicaciones para tenerlas siempre a mano.
Es recomendable utilizar una plataforma de este tipo que incluya una versión para dispositivos móviles, ya que nos permitirá conocer la contraseña de nuestro sistema rápidamente sin tener que apuntarla en un papel y dejarla a la vista de personas que no deberían acceder a nuestro equipo bajo ninguna circunstancia, especialmente en el ámbito laboral. Algunas de estas plataformas, también incluyen una extensión para navegadores, extensión que únicamente nos mostrará las contraseñas si introducimos la palabra clave que protege el contenedor donde se encuentran almacenadas.
Poner contraseña a la BIOS
Saliendo ya un poco del propio Linux, hay otras formas de proteger nuestro ordenador de personas no autorizadas. Por ejemplo, una de las más fáciles de usar es poner una clave al arranque del ordenador, en la BIOS. De esta forma, cuando se vaya a encender el PC se pedirá que se introduzca dicha clave (que puede ser una palabra, numérica, etc) y, si no se introduce, no se llegará al propio Linux. Así, nuestros datos estarán seguros, y nadie podrá eliminar sin permiso la contraseña.
Eso sí, debemos tener en cuenta que este método es muy fácil de saltar. Basta con resetear la BIOS quitando la pila del ordenador para que cualquiera pueda volver a encenderlo y entrar en el SO sin necesidad de ninguna clave.
Uso de Firewall y VPN
Reforzar la seguridad de la red en todos los puntos que sea posible es clave para evitar intrusiones no autorizadas. Una de esas medidas pasa por configurar un firewall. Como hemos visto en otras ocasiones, puedes usar iptables o su sucesor más moderno, nftables, para definir reglas de tráfico. Es crucial asegurarse de que solo los puertos necesarios para tus servicios estén abiertos. Es decir, si no usas por ejemplo SSH para el acceso remoto, lo mejor es cerrar el puerto.
También se puede establecer una estrategia de denegación por defecto para el tráfico entrante, lo que protegerá aún más el sistema. Incluso con la contraseña interceptada, todos los paquetes de datos que lleguen al sistema podrán ser bloqueados a menos que haya una regla que lo permita. Es decir, que debemos tener cuidado para el tráfico necesario como HTTP/HTTPS para un servidor web o SSH desde direcciones IP confiables.
Hablamos también de VPN como una capa de seguridad adicional para el acceso remoto. Al implementar la VPN estaremos seguros de que todo el tráfico entre nosotros y el servidor estará encriptado, lo que añade seguridad contra accesos no autorizados. Podemos usar herramientas como OpenVPN o WireGuard.
Seguridad del router
El router también debe ser tomado en cuenta para reforzar la seguridad de nuestro sistema Linux. Podemos configurarlo para deshabilitar el acceso remoto, cambiar las contraseñas predeterminadas y aplicar filtros de tráfico. Un muro defensivo puede ser el enfoque multilayered, desde el firewall hasta la configuración del router, que evita ataques que busquen vunerar la protección de la contraseña root.
Con estos pequeños gestos podrás aumentar la seguridad de tu red y evitar comprometer tu contraseña. Todos queremos evitar sorpresas, pero eso pasa por comprometernos en estar al día tanto de las opciones de protección que tenemos, como de los nuevos intentos de ataque que van apareciendo.
Elimina la password de acceso en Linux
En determinadas ocasiones también se puede dar el caso de que nos interese eliminar esta password de acceso a nuestra cuenta en un sistema de código abierto como es Linux. Por ejemplo, si no compartimos el equipo con ningún otro usuario y nadie más tiene acceso al mismo, esto nos puede ahorrar tiempo en el arranque del equipo. Evidentemente el software que hace las veces del sistema operativo nos permite eliminar esta clave si así lo deseamos.
Para ello en un principio no tenemos más que situarnos, algo extensible en la mayoría de las distribuciones, en el apartado llamado Aplicaciones. A continuación, nos vamos a Accesorios / Terminal y tecleamos el siguiente comando:
sudo visudo
Una vez se haya ejecutado buscamos la línea que reza %admin ALL=(ALL) ALL y la reemplazamos por lo siguiente:
%admin ALL=(ALL) NOPASSWD: ALL
Para terminar ya solo nos queda guardar los cambios que hemos efectuado y así a partir de ahora ya no se solicitará la contraseña al abrir el equipo con Linux.
Otra alternativa de seguridad
En la mayoría de las ocasiones tendemos a establecer una contraseña que protege el acceso a nuestro sistema operativo como en este caso sucede con Linux. Al mismo tiempo y como muchos de vosotros ya sabréis, estas prácticas son habituales en otras propuestas como Windows de Microsoft. Sin embargo, al trabajar con un sistema operativo de código abierto, si no estamos demasiado especializados en su uso, podemos echar mano de otra alternativa para proteger nuestro equipo y sus datos almacenados.
En concreto nos referimos a la posibilidad de establecer una contraseña de acceso a través de la BIOS de la placa base. La misma se solicitará nada más poner en funcionamiento nuestro ordenador antes de empezar con el arranque del sistema operativo como tal. Lo único que aquí debemos tener en consideración es que perder esta password de acceso se puede convertir en un grave problema. Por lo tanto, si la guardamos en su lugar seguro o nos aseguramos de no olvidarla, esta solución puede ser una alternativa perfecta al uso ve la contraseña en Linux.
Cómo reforzar la seguridad
Como podemos ver, es relativamente sencillo (siempre que se tengan los conocimientos adecuados) romper la seguridad de cualquier sistema Linux que tenga contraseña de root. Requiere varios pasos, muchos riesgos... pero es posible. Entonces, ¿cómo puedo reforzar la seguridad para que esto no ocurra?
En primer lugar, es de suma importancia usar siempre contraseñas seguras. Y, además de ello, guardarlas todas en un gestor de contraseñas. ¿Por qué? Sencillo. Si alguien consigue nuestra contraseña de root, tendrá acceso total al sistema. Y podría hacer en él lo que quisiera, incluso ver las contraseñas de Chrome. Si tenemos las claves en una base de datos cifrada, ya sea Bitwarden, o KeePass, sin la clave maestra nuestras contraseñas estarán totalmente seguras.
Por otro lado, también debemos implementar sistemas de autenticación múltiple (MFA) en nuestro Linux, y en todas las plataformas que tengamos. De esta forma nos aseguramos de que, aunque alguien consiga las contraseñas maestras del sistema, no podrá entrar a él. Eso sí, para esta configuración es necesario contar con conocimientos muy avanzados y cierto nivel de infraestructura.
Solución de problemas comunes
Aunque el proceso de recuperación de contraseña parece sencillo, existen varios errores recurrentes que pueden llegar a bloquear a los usuarios. A continuación os vamos a dejar algunas soluciones para los tres problemas más habituales:
No identificar correctamente la partición raíz del sistema
Puede ocurrir que, al ejecutar lsblk, aparezcan múltiples particiones y no sepamos cuál es la del sistema operativo. Esto se debe a que los sistemas actuales suelen tener múltiples particiones (EFI, swap, datos, etc), y, además, los resultados pueden incluir dispositivos que deben ignorarse.
Para solucionarlo, podemos seguir los siguientes pasos:
- Ignorar los resultados que terminan en rom, loop, airootfs, boot0, boot1 y dispositivos mmcblk* que terminan en rpbm.
- Buscar la partición más grande (generalmente la raíz del sistema).
- Usar fdisk -l para obtener más detalles sobre el tipo de partición.
- Las particiones del sistema suelen estar en /dev/sda1, /dev/sda2 o /dev/nvme0n1p2.
El comando mount falla con "permiso denegado" o "dispositivo ocupado"
Otro error muy común es que, al intentar montar la partición, aparezca un error como "mount: permission denied" o "device busy". Esto puede deberse a que el módulo del kernel necesario no esté cargado o la partición ya esté montada en otro punto.
Para solucionarlo, debemos:
- Asegurarnos de ejecutar todos los comandos como root (con sudo).
- Si el error persiste, cargaremos el módulo device-mapper: modprobe dm-mod.
- Verificamos si la partición ya está montada: mount | grep /dev/sda1.
- Si está montada, la desmontamos primero: umount /dev/sda1.
- En sistemas con LVM, ejecutaremos también: vgscan y vgchange -ay.
El comando passwd root no encuentra el usuario o no funciona
En caso de que nos aparezca un mensaje como "user root does not exist", o los cambios no se guarden al reiniciar, lo más seguro es que no hayamos hecho chroot correctamente al sistema montado, por lo que estaremos intentando cambiar la contraseña en el Live CD en lugar del sistema real.
Para solucionarlo:
- Después de montar la partición, debemos hacer chroot: chroot /mnt.
- Una vez dentro del chroot, ejecutaremos: passwd root.
- Verificaremos que estamos en el sistema correcto comprobando: ls /home (deberías ver los usuarios del sistema).
- Antes de reiniciar, saldremos del chroot con "exit" y desmontaremos la unidad con: umount /mnt.
Consejo adicional: Si tenemos un sistema con cifrado de disco, necesitaremos descifrarlo primero usando cryptsetup luksOpen /dev/sdaX antes de poder montar la partición.
