lxc-create con un usuario no predeterminado

lxc-create con un usuario no predeterminado

Cuando se usa "lxc-create -t ​​ubuntu", ¿cómo se especifica el usuario del nuevo contenedor? No quiero el ubuntu:ubuntu predeterminado, sino especificar mi propio nombre de usuario y contraseña únicos.

Estoy usando lxc 1.0.0~beta3 en ubuntu 14.04.

Respuesta1

La creación de usuarios se realiza en el archivo de plantilla, por lo que debe cambiar el archivo de plantilla de Ubuntu, es decir: lxc-ubuntu. Las plantillas se almacenan en /usr/local/share/lxc/templateso /usr/lib/lxc/templates/. Ábrelo con tu editor favorito y busca las siguientes líneas (están en configure_ubuntu()función del archivo de plantilla):

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

Reemplace ubuntucon su propio nombre de usuario y contraseña, es decir, estas líneas serán:

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

Luego crea tu contenedor como de costumbre.

Respuesta2

Una opción más sencilla para un uso único sería crear el usuario usted mismo. Las plantillas más nuevas (al menos las de ubuntu que acabo de probar) ya ni siquiera vienen con el usuario predeterminado de ubuntu/ubuntu, vea este mensaje:

Acabas de crear un contenedor de Ubuntu (versión=trusty, arch=amd64, variante=default)

Para habilitar sshd, ejecute: apt-get install openssh-server

Por motivos de seguridad, las imágenes de contenedores se envían sin cuentas de usuario y sin contraseña de root.

Utilice lxc-attach o chroot directamente en rootfs para establecer una contraseña de root o crear cuentas de usuario.

Usar lxc-attach es el más rápido hasta donde yo sé, solo haz esto:

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

Respuesta3

Puede pasar las opciones de Comandline a la Plantilla/Script, que está instalando y configurando el contenedor LXC de Ubuntu./usr/share/lxc/templates/lxc-ubuntu

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

Otras opciones son:

./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

información relacionada