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