#!/bin/sh
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Run mount-passthrough with minijail0.

set -e

SOURCE_IN_CONTAINER=/mnt/source
DEST_IN_CONTAINER=/mnt/dest

main() {
  if [ $# -ne 5 ]; then
    echo "Usage: $0 source dest umask uid gid"
    exit 1
  fi

  local source="$1"
  local dest="$2"
  local umask="$3"
  local uid="$4"
  local gid="$5"

  # Set large enough open file limit since this process handles many open files.
  ulimit -n 8192

  # Start constructing minijail0 args...
  set --

  # Use minimalistic-mountns profile.
  set -- "$@" --profile=minimalistic-mountns

  # Enter a new UTS namespace.
  set -- "$@" --uts

  # Enter a new VFS namespace and remount /proc read-only.
  set -- "$@" -v -r

  # Enter a new network namespace.
  set -- "$@" -e

  # Enter a new PID namespace and run the process as init (pid=1).
  set -- "$@" -p -I

  # Enter a new IPC namespace.
  set -- "$@" -l

  # Forbid all caps except for CAP_SYS_ADMIN needed to mount fuse filesystem.
  set -- "$@" -c 0x200000

  # Run as chronos/chronos.
  set -- "$@" -u chronos -g chronos -G

  # Allow sharing mounts between CrOS and Android.
  # WARNING: BE CAREFUL not to unexpectedly expose shared mounts in following
  # bind mounts! Always remount them with MS_REC|MS_PRIVATE unless you want to
  # share those mounts explicitly.
  set -- "$@" -K

  # Mount tmpfs on /mnt.
  set -- "$@" -k "tmpfs,/mnt,tmpfs,MS_NOSUID|MS_NODEV|MS_NOEXEC"

  # Bind /dev/fuse to mount FUSE file systems.
  set -- "$@" -b /dev/fuse

  # Mark PRIVATE recursively under (pivot) root, in order not to expose shared
  # mount points accidentally.
  set -- "$@" -k "none,/,none,0x44000"  # private,rec

  # Mount source/dest directories.
  # Note that those directories might be shared mountpoints and we allow them.
  # 0x5000 = bind,rec
  set -- "$@" -k "${source},${SOURCE_IN_CONTAINER},none,0x5000"
  # 0x84000 = slave,rec
  set -- "$@" -k "${source},${SOURCE_IN_CONTAINER},none,0x84000"
  # 0x102e = bind,remount,noexec,nodev,nosuid
  set -- "$@" -k "${source},${SOURCE_IN_CONTAINER},none,0x102e"

  # 0x1000 = bind
  set -- "$@" -k "${dest},${DEST_IN_CONTAINER},none,0x1000"
  # 0x102e = bind,remount,noexec,nodev,nosuid
  set -- "$@" -k "${dest},${DEST_IN_CONTAINER},none,0x102e"

  # Finally, specify command line arguments.
  set -- "$@" -- /usr/bin/mount-passthrough
  set -- "$@" "${SOURCE_IN_CONTAINER}" "${DEST_IN_CONTAINER}" "${umask}" \
      "${uid}" "${gid}"

  exec minijail0 "$@"
}

main "$@"
