initial commit
This commit is contained in:
17
scripts/dumb-run-as.sh
Executable file
17
scripts/dumb-run-as.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
set -ef
|
||||
_user="${1%%:*}" ; _group="${1#*:}" ; shift
|
||||
getent passwd "${_user}" >/dev/null
|
||||
_home=$(getent passwd "${_user}" | cut -d: -f6)
|
||||
_test_dir() { setpriv --reuid="$1" --regid="$2" --init-groups test -d "$3" ; }
|
||||
unset _cwd
|
||||
if ! _test_dir "${_user}" "${_group}" . ; then
|
||||
_cwd=${_home}
|
||||
if ! _test_dir "${_user}" "${_group}" "${_cwd}" ; then
|
||||
_cwd=/
|
||||
fi
|
||||
fi
|
||||
exec \
|
||||
setpriv --reuid="${_user}" --regid="${_group}" --init-groups \
|
||||
env ${_cwd:+ -C "${_cwd}" } USER="${_user}" LOGNAME="${_user}" "HOME=${_home}" SHELL=/bin/sh \
|
||||
"$@"
|
Reference in New Issue
Block a user