blob: bf950b1e765d73f50be0b5c7ced3506e95ad857a [file] [log] [blame]
#!/bin/bash -eu
# Copyright 2017 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
################################################################################
rm -rf /tmp/chroot
mkdir /tmp/chroot
mkdir /tmp/chroot/lib
mkdir /tmp/chroot/lib64
mkdir /tmp/chroot/lib32
mkdir /tmp/chroot/usr
mkdir /tmp/chroot/usr/lib
mkdir /tmp/chroot/usr/lib32
mkdir /tmp/chroot/dev
mknod -m 666 /tmp/chroot/dev/null c 1 3
mknod -m 666 /tmp/chroot/dev/urandom c 1 9
mkdir /tmp/chroot/proc
mkdir /tmp/chroot/tmp
mkdir /tmp/chroot/bin
cp /bin/sh /tmp/chroot/bin/sh
cp $(which llvm-symbolizer) /tmp/chroot/bin/llvm-symbolizer
FULL_EXE_PATH=$(readlink -f $1)
EXE_DIR=$(dirname $FULL_EXE_PATH)
mkdir -p /tmp/chroot/$EXE_DIR
shift
echo 'Running:'
echo minijail0 -U -m \"0 $UID 1\" -T static \
-c 0 -n -v -p -l -I \
-k proc,/proc,proc,1 -P /tmp/chroot \
-b /lib,/lib,0 -b /lib64,/lib64,0 -b /lib32,/lib32,0 -b /usr/lib,/usr/lib,0 \
-b /usr/lib32,/usr/lib32,0 -b /tmp,/tmp,1 \
-b $EXE_DIR,$EXE_DIR,0 $FULL_EXE_PATH $@
minijail0 -U -m "0 $UID 1" -T static \
-c 0 -n -v -p -l -I \
-k proc,/proc,proc,1 -P /tmp/chroot \
-b /lib,/lib,0 -b /lib64,/lib64,0 -b /lib32,/lib32,0 -b /usr/lib,/usr/lib,0 \
-b /usr/lib32,/usr/lib32,0 -b /tmp,/tmp,1 \
-b $EXE_DIR,$EXE_DIR,0 $FULL_EXE_PATH $@