#!/usr/bin/env bash OPTIND=1 UNSHARED=false while getopts ":U" opt; do case "$opt" in U) UNSHARED=true ;; *) ;; esac done shift $((OPTIND - 1)) if [ ! "$UNSHARED" == "true" ]; then user="$(whoami)" vars="" vars+=" HOME=$HOME" vars+=" PATH=$PREFIX/bin" vars+=" PREFIX=$PREFIX" vars+=" TMPDIR=$TMPDIR" vars+=" SHELL=$PREFIX/bin/login" vars+=" exec $PREFIX/bin/login" args="" if [ -n "$1" ]; then args="-c '$@'" fi $PREFIX/bin/sudo unshare -m $0 -U "$user" "$HOME" "$vars $args" else mount --bind /data/data/com.termux /data/data/com.termux user="$1" user_home="$2" vars="$3" cd $user_home groups=${user},inet,everybody,${user}_cache,all_$(echo $user | cut -d "_" -f 2) exec chroot --skip-chdir --userspec=$user:$user --groups=$groups / sh -c "$vars" fi