lxc-create mit nicht standardmäßigem Benutzer

lxc-create mit nicht standardmäßigem Benutzer

Wie gibt man bei Verwendung von „lxc-create -t ​​ubuntu“ den Benutzer des neuen Containers an? Ich möchte nicht den Standard ubuntu:ubuntu, sondern meinen eigenen eindeutigen Benutzernamen und mein eigenes Passwort angeben.

Ich verwende lxc 1.0.0~beta3 auf Ubuntu 14.04.

Antwort1

Die Benutzererstellung erfolgt in der Vorlagendatei, daher müssen Sie die Ubuntu-Vorlagendatei ändern, d. h.: lxc-ubuntu. Vorlagen werden in /usr/local/share/lxc/templatesoder gespeichert /usr/lib/lxc/templates/. Öffnen Sie sie mit Ihrem bevorzugten Editor und suchen Sie die folgenden Zeilen (sie stehen in configure_ubuntu()Funktion der Vorlagendatei):

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

Ersetzen Sie es ubuntudurch Ihren eigenen Benutzernamen und Ihr eigenes Passwort. Die Zeile lautet dann:

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

Erstellen Sie dann wie gewohnt Ihren Container.

Antwort2

Eine einfachere Option für die einmalige Verwendung wäre, den Benutzer selbst zu erstellen. Neuere Vorlagen (zumindest das Ubuntu, das ich gerade ausprobiert habe) enthalten nicht einmal mehr den Standardbenutzer Ubuntu/Ubuntu, siehe diese Meldung:

Sie haben gerade einen Ubuntu-Container erstellt (Release=trusty, Arch=amd64, Variante=Default).

Um SSHD zu aktivieren, führen Sie aus: apt-get install openssh-server

Aus Sicherheitsgründen werden Container-Images ohne Benutzerkonten und ohne Root-Passwort ausgeliefert.

Verwenden Sie lxc-attach oder chroot direkt in das Root-Dateisystem, um ein Root-Passwort festzulegen oder Benutzerkonten zu erstellen.

Die Verwendung von lxc-attach ist meines Erachtens am schnellsten. Gehen Sie dazu einfach wie folgt vor:

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

Antwort3

Sie können Befehlszeilenoptionen an die Vorlage/das Skript übergeben, das den Ubuntu LXC-Container installiert und konfiguriert/usr/share/lxc/templates/lxc-ubuntu

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

Weitere Optionen sind:

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

verwandte Informationen