Commit 9e214906 by Serge Hallyn

lxc-busybox: if in userns, don't try to mknod

parent c4d10a05
...@@ -20,6 +20,17 @@ ...@@ -20,6 +20,17 @@
# License along with this library; if not, write to the Free Software # License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
am_in_userns() {
[ -e /proc/self/uid_map ] || { echo no; return; }
[ "$(wc -l /proc/self/uid_map | awk '{ print $1 }')" -eq 1 ] || { echo yes; return; }
line=$(awk '{ print $1 " " $2 " " $3 }' /proc/self/uid_map)
[ "$line" = "0 0 4294967295" ] && { echo no; return; }
echo yes
}
in_userns=0
[ $(am_in_userns) = "yes" ] && in_userns=1
install_busybox() install_busybox()
{ {
rootfs=$1 rootfs=$1
...@@ -55,6 +66,12 @@ $rootfs/usr/lib64" ...@@ -55,6 +66,12 @@ $rootfs/usr/lib64"
pushd $rootfs/dev > /dev/null || return 1 pushd $rootfs/dev > /dev/null || return 1
# minimal devices needed for busybox # minimal devices needed for busybox
if [ $in_userns -eq 1 ]; then
for dev in tty console tty0 tty1 tty5 ram0 null urandom; do
touch $rootfs/dev/$dev
echo "/dev/$dev dev/$dev none bind 0 0" >> $path/fstab
done
else
mknod tty c 5 0 || res=1 mknod tty c 5 0 || res=1
mknod console c 5 1 || res=1 mknod console c 5 1 || res=1
chmod 666 tty console || res=1 chmod 666 tty console || res=1
...@@ -68,6 +85,7 @@ $rootfs/usr/lib64" ...@@ -68,6 +85,7 @@ $rootfs/usr/lib64"
chmod 666 null || res=1 chmod 666 null || res=1
mknod urandom c 1 9 || res=1 mknod urandom c 1 9 || res=1
chmod 666 urandom || res=1 chmod 666 urandom || res=1
fi
popd > /dev/null popd > /dev/null
......
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