Un conteneur LXC possède ses propres définitions de nom d'utilisateur et de mot de passe. Le mot de passe d'un compte LXC peut être modifié si nécessaire, que le conteneur soit en cours d'exécution ou non.
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
Réinitialisation du mot de passe utilisateur du conteneur LXC oublié
Se connecter à un conteneur en cours d'exécution en tant qu'utilisateur racine
Si le conteneur est en cours d'exécution, le mot de passe peut être réinitialisé sans qu'il soit nécessaire d'arrêter le conteneur.
# 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 ~]#
Le lxc-attach La commande démarre un nouveau processus dans un conteneur en cours d'exécution. Le nouveau processus sera exécuté à l'aide des informations d'identification de l'utilisateur exécutant la commande lxc-attach. Ici, l'utilisateur root démarre un environnement shell normal. Une fois le shell démarré, utilisez simplement la commande commune passwd comme d'habitude.
Supprimez le mot de passe pour autoriser la connexion de l'utilisateur et la réinitialisation normale. Les fichiers du conteneur LXC sont directement accessibles depuis la ligne de commande de l'hôte. En modifiant le fichier /etc/passwd dans le conteneur LCX, l'exigence de mot de passe pour l'utilisateur peut être supprimée pour ouvrir le compte pour une connexion sans mot de passe.
Le premier objectif est de trouver le chemin du conteneur LXC du fichier à modifier. Le conteneur LXC doit être arrêté pour effectuer cette procédure.
Étape 1 :Localisez l'emplacement où les fichiers du conteneur sont conservés
# 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
Tout d'abord, recherchez les attributs LXC disponibles. Utilisez l'attribut lxc-lxcpath pour localiser les fichiers de conteneur :
Étape 2 :Où se trouvent les fichiers de conteneur montés par l'hôte LXC ?
# mount | grep container /dev/sdb on /container type btrfs (rw)
Ici, les fichiers du conteneur LXC sont accessibles depuis le via le répertoire /container.
Étape 3 :Trouvez le système de fichiers racine du conteneur
# 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
Étape 4 :Supprimez le deuxième champ pour l'utilisateur problématique dans etc/fstab
# grep oracle etc/passwd oracle:x:1000:1000::/home/oracle:/bin/bash # vi etc/passwd
Supprimez tout contenu entre les deux premiers caractères deux-points (:) pour l'utilisateur qui vous intéresse
# grep oracle etc/passwd oracle::1000:1000::/home/oracle:/bin/bash
Utilisez le système de fichiers racine du conteneur comme prison chroot et modifiez le mot de passe normalement
Localisez le système de fichiers racine du conteneur LXC comme indiqué précédemment. Utilisez ensuite la commande chroot(1) pour entrer un contexte d'exécution dans le conteneur. En tant que root, changez le mot de passe normalement.
Le conteneur LXC doit être arrêté pour effectuer cette procédure.
# 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.
Démarrez ensuite le conteneur et autorisez l'utilisateur à se connecter normalement.