diff options
author | Serge E. Hallyn <serge.hallyn@canonical.com> | 2011-10-24 14:47:58 +0200 |
---|---|---|
committer | Daniel Lezcano <daniel.lezcano@free.fr> | 2011-10-24 14:47:58 +0200 |
commit | 8565ea1c6f8285ca14fc3025791cd6b6576e4639 (patch) | |
tree | 8ac2561239349140671b337a1d859bfa34dfd605 | |
parent | Don't list containers w/ active console sessions multiple times (diff) | |
download | lxc-8565ea1c6f8285ca14fc3025791cd6b6576e4639.tar.gz lxc-8565ea1c6f8285ca14fc3025791cd6b6576e4639.tar.bz2 lxc-8565ea1c6f8285ca14fc3025791cd6b6576e4639.zip |
lxc-ubuntu: stop early if a bad user is specified in -b option
Otherwise we end up with a bad container fstab and a container
that won't boot. See
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/879052
Signed-off-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
-rw-r--r-- | templates/lxc-ubuntu.in | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/templates/lxc-ubuntu.in b/templates/lxc-ubuntu.in index 95b218a..0a8bbff 100644 --- a/templates/lxc-ubuntu.in +++ b/templates/lxc-ubuntu.in @@ -334,20 +334,21 @@ do_bindhome() rootfs=$1 user=$2 - # bind-mount the user's path into the container's /home - h=`getent passwd $user | cut -d: -f 6` - mkdir -p $rootfs/$h - echo "$h $rootfs/$h none bind 0 0" >> $path/fstab - # copy /etc/passwd, /etc/shadow, and /etc/group entries into container pwd=`getent passwd $user` if [ $? -ne 0 ]; then echo 'Warning: failed to copy password entry for $user' + return else echo $pwd >> $rootfs/etc/passwd fi shad=`getent shadow $user` echo $shad >> $rootfs/etc/shadow + + # bind-mount the user's path into the container's /home + h=`getent passwd $user | cut -d: -f 6` + mkdir -p $rootfs/$h + echo "$h $rootfs/$h none bind 0 0" >> $path/fstab } clean() @@ -440,6 +441,13 @@ do esac done +pwd=`getent passwd $bindhome` +if [ $? -ne 0 ]; then + echo "Error: no password entry found for $bindhome" + exit 1 +fi + + if [ "$arch" == "i686" ]; then arch=i386 fi |