GNU/Linux >> Linux の 問題 >  >> Linux

LXC コンテナー ユーザー アカウントのパスワードを変更する方法

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.

次に、コンテナーを開始し、ユーザーが通常どおりログインできるようにします。


Linux
  1. Linuxでユーザーパスワードを変更、削除、または無効にする方法

  2. ルートパスワードを変更するにはどうすればよいですか?

  3. Linuxでユーザーパスワードを変更または設定する方法

  1. Ubuntuでユーザーパスワードを変更する方法

  2. Linuxで次回のログイン時にユーザーにパスワードの変更を強制する方法

  3. lxc コンテナー:パスワードとユーザー名

  1. Linuxでパスワードを変更する方法–ステップバイステップガイド

  2. Linuxでユーザーパスワードを変更する方法

  3. Linuxでユーザーパスワードを変更する方法