Initial commit.
This commit is contained in:
45
watchman-runas.bash
Normal file
45
watchman-runas.bash
Normal file
@@ -0,0 +1,45 @@
|
||||
#!@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 "$@"
|
||||
Reference in New Issue
Block a user