lxc-使用非預設使用者創建

lxc-使用非預設使用者創建

當使用“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

出於安全原因,容器映像在交付時沒有使用者帳戶,也沒有 root 密碼。

直接使用 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

相關內容