46 lines
604 B
Bash
46 lines
604 B
Bash
#!@BASH_PATH@
|
|
|
|
watchman_version='@VERSION@'
|
|
|
|
err() { printf '%s\n' "$1" >&2; }
|
|
|
|
runas::main() {
|
|
local job_username
|
|
|
|
while [[ "$1" ]]; do
|
|
case "$1" in
|
|
(-u) job_username="$2"; shift;;
|
|
(-h) runas::usage;;
|
|
|
|
(-v)
|
|
printf '%s\n' "$watchman_version"
|
|
exit 0
|
|
;;
|
|
|
|
(-*)
|
|
err "Unknown option: $1"
|
|
runas::usage
|
|
return 1
|
|
;;
|
|
|
|
(*) break;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
[[ "$UID" -eq 0 ]] || {
|
|
err "Only root is allowed to runas!"
|
|
return 1
|
|
}
|
|
|
|
(( $# )) || {
|
|
err "No command supplied"
|
|
runas::usage
|
|
return 1
|
|
}
|
|
|
|
exec su "$job_username" -s "$BASH" -c "$*"
|
|
}
|
|
|
|
runas::main "$@"
|