
Todos sabemos que Linux es muy seguro, pero como alguien acceda físicamente a tu máquina desde un LiveUSB, te hace la pascua. Y es que como se vio en «Como montar tu disco duro desde un Live USB» aprendimos a acceder a los datos de un disco. Ahora ademas, veremos como cambiar la contraseña de un usuario, e incluso la de root.
Para esto se usa Chroot (Change root) que es una utilidad del sistema Unix que se emplea para crear un nuevo entorno separado del directorio raíz del sistema principal. Este nuevo entorno se conoce como una «jaula chroot». Un usuario que opere dentro de la jaula no puede ver ni acceder ficheros fuera del entorno en el que se le ha confinado.
¡Comenzamos!
Inicia cualquier LiveUSB, yo lo haré con Debian 12 XFCE4.
Una vez iniciado el sistema, abre una terminal y escribe:
lsblk -p
Como resultado tendremos esta salida:
demo@mx1:~
$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/loop0 7:0 0 2,1G 1 loop /live/linux
/dev/sda 8:0 0 111,8G 0 disk
├─/dev/sda1 8:1 0 110,8G 0 part
├─/dev/sda2 8:2 0 1K 0 part
└─/dev/sda5 8:5 0 975M 0 part [SWAP]
/dev/sdb 8:16 0 298,1G 0 disk
└─/dev/sdb1 8:17 0 298,1G 0 part
/dev/sdc 8:32 1 29,3G 0 disk
├─/dev/sdc1 8:33 1 29,3G 0 part
│ └─/dev/mapper/ventoy 254:0 0 2,2G 1 dm /live/boot-dev
└─/dev/sdc2 8:34 1 32M 0 part
demo@mx1:~
Como puedes observar, se han listado 3 discos:
- /dev/sda que es donde está insalado Debian 12 XFCE (lo sé porque tiene 3 particiones, siendo una de ella la swap)
- /dev/sdb que es un disco que tengo como almacen.
- /dev/sdc que es el propio Pendrive de arranque del Live USB.
- También tenemos el /dev/loop0 que es donde está montado nuestro sistema provisional.
Si con lsblk
no tienes toda la información que necesitas para identificar tu disco, puedes usar estos comandos que te dejo a continuación:
- fdisk
fdisk es otra opción común entre los sysops. Actualmente lista las diferentes particiones (lo que está relacionado con los discos duros, ya que un disco duro puede estar dividido en varias particiones) de su sistema.
sudo fdisk –list - parted
Esta es similar a las anteriores mencionadas, lista todas las particiones y permite gestionarlas. Su principal diferencia es que también te informa de la marca y modelo de tus discos duros e incluso del tipo de conectividad utilizada en el mismo (scsi, sata, etc) y del tamaño total del disco.
sudo parted -l - sfdisk
Esto es muy similar a fdisk, sin embargo sfdisk le permite ver tanto los volúmenes físicos como los lógicos y también le da un «resumen» de las particiones de los volúmenes físicos reales con los cilindros (inicio y final), sectores, tamaño y tipo.
Probablemente la «s» es por «super», ya que es un fdisk con superpoderes:
sudo sfdisk -l
Creando el directorio contenedor.
Para el montaje del disco debes crear un directorio al que puedes llamar como quieras, yo lo llamaré disco, y el lugar donde lo haré, será en /media
.
Así que en una terminal homologada escribe:
sudo mkdir /media/disco
Montando el disco
Ahora, en la carpeta contenedora llamada disco
, montaré el disco sda1
así:
sudo mount /dev/sda1 /media/disco
Si vuelves a hacer un lsblk
, verás que sda1
, tiene el punto de montaje en esa ruta.
demo@mx1:~
$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
/dev/loop0 7:0 0 2,1G 1 loop /live/linux
/dev/sda 8:0 0 111,8G 0 disk
├─/dev/sda1 8:1 0 110,8G 0 part /media/disco
├─/dev/sda2 8:2 0 1K 0 part
└─/dev/sda5 8:5 0 975M 0 part [SWAP]
/dev/sdb 8:16 0 298,1G 0 disk
└─/dev/sdb1 8:17 0 298,1G 0 part
/dev/sdc 8:32 1 29,3G 0 disk
├─/dev/sdc1 8:33 1 29,3G 0 part
│ └─/dev/mapper/ventoy 254:0 0 2,2G 1 dm /live/boot-dev
└─/dev/sdc2 8:34 1 32M 0 part
demo@mx1:~
Enjaular disco
Para que Chroot funcione, este debe de ser montado dentro de un disco que tenga un sistema linux instalado, ya que bash necesitará estar instalado ahí. Si lo haces sobre un disco vacío, no funcionará ningún comando.
Y ahora que ya lo tenemos montado, ejecutamos el comando chroot para enjaularnos dentro de nuestro disco y poder ejecutar comandos como si estuviésemos operando desde ese disco
sudo chroot /media/disco
En este momento, todo lo que hagamos solo afectará al disco donde estamos enjaulados.
Cambia el password de root así:
passwd root
Y el de usuario, así:
passwd tu_usuario
Ya solo queda reiniciar el equipo, quitar el Live Cd, e introducir las nuevas contraseñas.