Commit 03611dc6 authored by Seblu's avatar Seblu Committed by Pierre Schmitz
Browse files

Switch to root when started as regular user

In collaborative builder machine, these scripts are often allowed to become root
via sudo. This patch avoid to prefix them by sudo each time or call su.

Signed-off-by: default avatarPierre Schmitz <pierre@archlinux.de>
parent 7aac293d
Loading
Loading
Loading
Loading
+1 −1
Changes for arch-nspawn.in: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -37,8 +37,8 @@ while getopts 'hC:M:c:' arg; do
done
shift $(($OPTIND - 1))

(( $EUID != 0 )) && die 'This script must be run as root.'
(( $# < 1 )) && die 'You must specify a directory.'
check_root "$0" "$@"

working_dir=$(readlink -f "$1")
shift 1
+1 −3
Changes for archbuild.in: 1 added line, 3 removed lines.
Original line number Diff line number Diff line
@@ -40,9 +40,7 @@ done
# Pass all arguments after -- right to makepkg
makechrootpkg_args+=("${@:$OPTIND}")

if (( EUID )); then
	die 'This script must be run as root.'
fi
check_root "$0" "$@"

if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
	msg "Creating chroot for [${repo}] (${arch})..."
+13 −0
Changes for lib/common.sh: 13 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -228,3 +228,16 @@ find_cached_package() {
			return 1
	esac
}

##
#  usage : check_root ("$0" "$@")
##
check_root() {
	(( EUID == 0 )) && return
	if type -P sudo >/dev/null; then
		exec sudo -- "$@"
	else
		exec su root -c "$(printf '%q' "$@")"
	fi
	die 'This script must be run as root.'
}
+1 −1
Changes for makechrootpkg.in: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ while getopts 'hcur:I:l:nTD:d:' arg; do
	esac
done

(( EUID != 0 )) && die 'This script must be run as root.'
check_root "$0" "$@"

[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.'

+2 −1
Changes for mkarchroot.in: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -35,9 +35,10 @@ while getopts 'hC:M:c:' arg; do
done
shift $(($OPTIND - 1))

(( $EUID != 0 )) && die 'This script must be run as root.'
(( $# < 2 )) && die 'You must specify a directory and one or more packages.'

check_root "$0" "$@"

working_dir="$(readlink -f $1)"
shift 1