This commit is contained in:
Filippo Squillace 2014-11-27 00:46:43 +01:00
parent 4d32bf4ad8
commit 95d933234c
2 changed files with 20 additions and 7 deletions

View file

@ -78,6 +78,7 @@ fi
CHROOT=${JUJU_HOME}/usr/bin/arch-chroot
TRUE=${JUJU_HOME}/usr/bin/true
ID="${JUJU_HOME}/usr/bin/id -u"
################################# MAIN FUNCTIONS ##############################
@ -169,12 +170,16 @@ function run_juju_as_root(){
function _run_juju_with_proot(){
if ${PROOT} ${TRUE} &> /dev/null
then
JUJU_ENV=1 ${PROOT} $@
else
JUJU_ENV=1 PROOT_NO_SECCOMP=1 ${PROOT} $@
fi
${PROOT} ${TRUE} &> /dev/null || export PROOT_NO_SECCOMP=1
[ "$(${PROOT} ${ID} 2> /dev/null )" == "0" ] && \
die "You cannot access with root privileges. Use --root option instead."
JUJU_ENV=1 ${PROOT} $@
local ret=$?
export -n PROOT_NO_SECCOMP
return $ret
}

View file

@ -57,6 +57,7 @@ function test_setup_juju(){
export -f setup_juju
JUJU_ENV=1 bash -ic "setup_juju" &> /dev/null
is_equal $? 1 || return 1
unset setup_juju
}
@ -71,9 +72,9 @@ function test_setup_from_file_juju(){
bash -ic "setup_from_file_juju noexist.tar.gz" &> /dev/null
is_equal $? 1 || return 1
export -f setup_from_file_juju
JUJU_ENV=1 bash -ic "setup_from_file_juju" &> /dev/null
is_equal $? 1 || return 1
unset setup_from_file_juju
}
@ -92,6 +93,7 @@ function test_run_juju_as_root(){
export -f run_juju_as_root
JUJU_ENV=1 bash -ic "run_juju_as_root" &> /dev/null
is_equal $? 1 || return 1
unset run_juju_as_root
}
function test_run_juju_as_user(){
@ -119,6 +121,11 @@ function test_run_juju_as_user_proot_args(){
touch $JUJU_TEMPDIR/newdir/newfile
run_juju_as_user "-b $JUJU_TEMPDIR/newdir:/newdir" "ls -l /newdir/newfile" 1> /dev/null
is_equal $? 0 || return 1
export -f _run_juju_with_proot
ID="/usr/bin/echo 0" bash -ic "_run_juju_with_proot" &> /dev/null
is_equal $? 1 || return 1
unset _run_juju_with_proot
}
function test_run_juju_as_user_seccomp(){
@ -149,6 +156,7 @@ function test_delete_juju(){
export -f delete_juju
JUJU_ENV=1 bash -ic "delete_juju" &> /dev/null
is_equal $? 1 || return 1
unset delete_juju
}