aboutsummaryrefslogtreecommitdiff
path: root/infra/base-images/base-runner/run_minijail
blob: bf950b1e765d73f50be0b5c7ced3506e95ad857a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/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 $@