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/templates
oder 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 ubuntu
durch 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