error() { (>&2 printf '\E[31mERROR:\E[0m %s\n' "$@" ) } require_root() { if [[ $EUID -ne 0 ]]; then error "This script should only be run using sudo or as the root user" exit 1 fi } function setacl() { if [[ $# -lt 4 ]]; then error "setacl missing arguments, called with '$1' ${@:2}" printf "%s\n" "Usage:" "\tsetacl [...]" return 1 fi local Options=${1} local Ownership=${2} local Permissions=${3} [[ -n "${SZ_DEBUG}" ]] \ && echo "chown $Options $Ownership \"${@:4}\"" chown $Options $Ownership "${@:4}" [[ -n "${SZ_DEBUG}" ]] \ && echo "chmod $Options $Permissions \"${@:4}\"" chmod $Options $Permissions "${@:4}" }