LXC コンテナーには、独自のユーザー名とパスワードの定義があります。 LXC アカウントのパスワードは、コンテナーが実行中かどうかに関係なく、必要に応じて変更できます。
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
LXC コンテナのユーザー パスワードを忘れた場合のリセット
root ユーザーとして実行中のコンテナに接続
コンテナーが実行中の場合、コンテナーを停止しなくてもパスワードをリセットできます。
# 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 コマンドは、実行中のコンテナー内で新しいプロセスを開始します。新しいプロセスは、lxc-attach コマンドを実行しているユーザーの資格情報を使用して実行されます。ここでは、root ユーザーが通常のシェル環境を開始します。シェルが起動したら、通常どおり共通の passwd コマンドを使用するだけです。
パスワードを削除して、ユーザー ログインと通常のリセットを許可します。 LXC コンテナー ファイルは、ホスト コマンド ラインから直接アクセスできます。 LCX コンテナー内の /etc/passwd ファイルを編集することにより、ユーザーのパスワード要件を削除して、パスワードなしのログイン用のアカウントを開くことができます。
最初の目的は、変更するファイルの LXC コンテナー パスを見つけることです。この手順を実行するには、LXC コンテナーを停止する必要があります。
ステップ 1:コンテナ ファイルが保存されている場所を特定する
# 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
まず、利用可能な LXC 属性を見つけます。 lxc-lxcpath 属性を使用してコンテナ ファイルを見つけます:
ステップ #2:LXC ホストによってマウントされたコンテナ ファイルはどこにありますか?
# mount | grep container /dev/sdb on /container type btrfs (rw)
ここで、LXC コンテナ ファイルは /container ディレクトリ経由でアクセスできます。
ステップ #3:コンテナのルート ファイル システムを見つける
# 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
ステップ #4:etc/fstab で問題のあるユーザーの 2 番目のフィールドを削除します
# grep oracle etc/passwd oracle:x:1000:1000::/home/oracle:/bin/bash # vi etc/passwd
関心のあるユーザーの最初の 2 つのコロン (:) 文字の間のコンテンツを削除します
# grep oracle etc/passwd oracle::1000:1000::/home/oracle:/bin/bash
コンテナーのルート ファイル システムを chroot 監獄として使用し、通常どおりパスワードを変更します
前に示したように、LXC コンテナーのルート ファイル システムを見つけます。次に、chroot(1) コマンドを使用して、コンテナー内の実行コンテキストに入ります。 root として、通常どおりパスワードを変更します。
この手順を実行するには、LXC コンテナーを停止する必要があります。
# 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.
次に、コンテナーを開始し、ユーザーが通常どおりログインできるようにします。