Un contenedor LXC tiene sus propias definiciones de nombre de usuario y contraseña. La contraseña de una cuenta LXC se puede cambiar cuando sea necesario, ya sea que el contenedor se esté ejecutando o no.
geeklab login: admin Password: Login incorrect Oracle Linux Server 7.1 Kernel 3.8.13-118.19.3.el6uek.x86_64 on an x86_64
Restablecimiento de la contraseña de usuario del contenedor LXC olvidada
Conéctese a un contenedor en ejecución como usuario raíz
Si el contenedor se está ejecutando, la contraseña se puede restablecer sin necesidad de detener el contenedor.
# lxc-attach -n Oracle7
[root@Oracle7 ~]# passwd Changing password for user root. New password: BAD PASSWORD: The password contains the user name in some form Retype new password: passwd: all authentication tokens updated successfully. [root@Oracle7 ~]#
lxc-attach El comando inicia un nuevo proceso dentro de un contenedor en ejecución. El nuevo proceso se ejecutará con las credenciales del usuario que ejecuta el comando lxc-attach. Aquí, el usuario root inicia un entorno de shell normal. Una vez que se inicia el shell, simplemente use el comando común passwd como de costumbre.
Elimine la contraseña para permitir el inicio de sesión del usuario y el restablecimiento normal. Se puede acceder directamente a los archivos del contenedor LXC desde la línea de comandos del host. Al editar el archivo /etc/passwd en el contenedor LCX, el requisito de contraseña para el usuario puede eliminarse para abrir la cuenta para iniciar sesión sin contraseña.
El primer objetivo es encontrar la ruta del contenedor LXC para modificar el archivo. El contenedor LXC debe detenerse para realizar este procedimiento.
Paso #1:Ubique dónde se guardan los archivos contenedores
# lxc-config -l lxc.default_config lxc.lxcpath lxc.bdev.lvm.vg lxc.bdev.lvm.thin_pool lxc.bdev.zfs.root
# lxc-config lxc-lxcpath /container
Primero, encuentre qué atributos LXC están disponibles. Use el atributo lxc-lxcpath para ubicar los archivos contenedores:
Paso #2:¿Dónde están los archivos contenedores montados por el host LXC?
# mount | grep container /dev/sdb on /container type btrfs (rw)
Aquí, se puede acceder a los archivos del contenedor LXC desde el directorio /container.
Paso n.º 3:encuentre el sistema de archivos raíz del contenedor
# cd /container/ # ls lxc-monitord.log Oracle5U9 Oracle7 Orcle5U9 # cd Oracle7/ # ls config Oracle7.log rootfs rootfs.dev # cd rootfs # ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var
Paso #4:Elimina el segundo campo para el usuario problemático en etc/fstab
# grep oracle etc/passwd oracle:x:1000:1000::/home/oracle:/bin/bash # vi etc/passwd
Eliminar cualquier contenido entre los dos primeros dos puntos (:) para el usuario de interés
# grep oracle etc/passwd oracle::1000:1000::/home/oracle:/bin/bash
Utilice el sistema de archivos raíz del contenedor como una cárcel chroot y cambie la contraseña normalmente
Localice el sistema de archivos raíz del contenedor LXC como se muestra anteriormente. Luego use el comando chroot(1) para ingresar un contexto de ejecución en el contenedor. Como root, cambie la contraseña normalmente.
El contenedor LXC debe detenerse para realizar este procedimiento.
# chroot /container/Oracle7/rootfs/ passwd oracle Changing password for user oracle. New password: BAD PASSWORD: The password contains the user name in some form Retype new password: passwd: all authentication tokens updated successfully.
Luego inicie el contenedor y permita que el usuario inicie sesión normalmente.