デフォルト以外のユーザーによる lxc-create

デフォルト以外のユーザーによる lxc-create

「lxc-create -t​​ ubuntu」を使用する場合、新しいコンテナのユーザーをどのように指定しますか? デフォルトの ubuntu:ubuntu ではなく、独自のユーザー名とパスワードを指定します。

私はUbuntu 14.04でlxc 1.0.0~beta3を使用しています。

答え1

ユーザーの作成はテンプレート ファイルで行われるため、ubuntu テンプレート ファイル ( ) を変更する必要があります。テンプレートはまたはlxc-ubuntuに保存されます。お気に入りのエディターでそれを開き、次の行を見つけます (これらはテンプレート ファイルの機能です)。/usr/local/share/lxc/templates/usr/lib/lxc/templates/configure_ubuntu()

if [ -z "$bindhome" ]; then
    chroot $rootfs useradd --create-home -s /bin/bash ubuntu
    echo "ubuntu:ubutu" | chroot $rootfs chpasswd
fi

ubuntu自分のユーザー名とパスワードに置き換えてください。つまり、これらの行は次のようになります。

if [ -z "$bindhome" ]; then
    chroot $rootfs useradd --create-home -s /bin/bash USERNAME
    echo "USERNAME:PASSWORD" | chroot $rootfs chpasswd
fi

その後、通常どおりコンテナを作成します。

答え2

一度だけの使用の場合、ユーザーを自分で作成するのがより簡単なオプションです。新しいテンプレート (少なくとも私が試した ubuntu) には、デフォルトの ubuntu/ubuntu ユーザーが付属していません。次のメッセージが表示されます。

Ubuntu コンテナを作成しました (release=trusty、arch=amd64、variant=default)

sshdを有効にするには、次を実行します: apt-get install openssh-server

セキュリティ上の理由から、コンテナ イメージはユーザー アカウントとルート パスワードなしで出荷されます。

lxc-attach または chroot を使用して rootfs に直接アクセスし、root パスワードを設定したり、ユーザー アカウントを作成したりします。

私の知る限り、lxc-attach を使用するのが最も速いので、次のようにします。

you@hostbox:/$ lxc-attach -n yourlxc
root@yourlxc:/# adduser username

答え3

Ubuntu LXCコンテナをインストールして構成するテンプレート/スクリプトにコマンドラインオプションを渡すことができます。/usr/share/lxc/templates/lxc-ubuntu

lxc-create -t ubuntu -n <CONTAINER_NAME> -- --user <USER_NAME> --password <USER_PASSWORD>

その他のオプションは次のとおりです:

./lxc-ubuntu -h|--help [-a|--arch] [-b|--bindhome <user>] [-d|--debug]
   [-F | --flush-cache] [-r|--release <release>] [ -S | --auth-key <keyfile>]
   [--rootfs <rootfs>] [--packages <packages>] [-u|--user <user>] [--password <password>]
   [--mirror <url>] [--security-mirror <url>]
release: the ubuntu release (e.g. precise): defaults to host release on ubuntu, otherwise uses latest LTS
bindhome: bind <user>'s home into the container
          The ubuntu user will not be created, and <user> will have
          sudo access.
arch: the container architecture (e.g. amd64): defaults to host arch
auth-key: SSH Public key file to inject into container
packages: list of packages to add comma separated
mirror,security-mirror: mirror for download and /etc/apt/sources.list

関連情報