Commit 8565ea1c by Serge E. Hallyn Committed by Daniel Lezcano

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/879052Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@canonical.com> Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent bc71b5c5
...@@ -334,20 +334,21 @@ do_bindhome() ...@@ -334,20 +334,21 @@ do_bindhome()
rootfs=$1 rootfs=$1
user=$2 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 # copy /etc/passwd, /etc/shadow, and /etc/group entries into container
pwd=`getent passwd $user` pwd=`getent passwd $user`
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo 'Warning: failed to copy password entry for $user' echo 'Warning: failed to copy password entry for $user'
return
else else
echo $pwd >> $rootfs/etc/passwd echo $pwd >> $rootfs/etc/passwd
fi fi
shad=`getent shadow $user` shad=`getent shadow $user`
echo $shad >> $rootfs/etc/shadow 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() clean()
...@@ -440,6 +441,13 @@ do ...@@ -440,6 +441,13 @@ do
esac esac
done done
pwd=`getent passwd $bindhome`
if [ $? -ne 0 ]; then
echo "Error: no password entry found for $bindhome"
exit 1
fi
if [ "$arch" == "i686" ]; then if [ "$arch" == "i686" ]; then
arch=i386 arch=i386
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment