mirror of
https://github.com/coreutils/coreutils.git
synced 2024-12-23 08:46:59 +08:00
Move setuidgid-related and
NON_ROOT_USERNAME-checking code to this file.
This commit is contained in:
parent
152d9ca522
commit
a0306325d2
@ -13,6 +13,7 @@ priv_check_temp=priv-check.$$
|
||||
touch $priv_check_temp || framework_failure=1
|
||||
chmod a-w $priv_check_temp || framework_failure=1
|
||||
|
||||
# FIXME: use id -u, as below -- avoiding use of a temporary file
|
||||
(echo foo >> $priv_check_temp) >/dev/null 2>&1
|
||||
overwrite_status=$?
|
||||
give_msg=no
|
||||
@ -35,4 +36,26 @@ EOF
|
||||
(exit 77); exit
|
||||
}
|
||||
|
||||
test "$PRIV_CHECK_ARG" = require-root &&
|
||||
{
|
||||
# When running as root, always ensure that we have a valid non-root username.
|
||||
: ${NON_ROOT_USERNAME=nobody}
|
||||
|
||||
# Ensure that the supplied username is valid and with UID != 0.
|
||||
coreutils_non_root_uid=`setuidgid $NON_ROOT_USERNAME id -u`
|
||||
test $? = 0 || \
|
||||
{
|
||||
echo "$0: This command failed: \`setuidgid $NON_ROOT_USERNAME id -u'" 1>&2
|
||||
echo "$0: Skipping this test. To enable it, set the envvar" 1>&2
|
||||
echo "$0: NON_ROOT_USERNAME to a non-root user name." 1>&2
|
||||
(exit 77); exit 77
|
||||
}
|
||||
test "$coreutils_non_root_uid" = 0 && \
|
||||
{
|
||||
echo "$0: The specified NON_ROOT_USERNAME ($NON_ROOT_USERNAME)" 1>&2
|
||||
echo "$0: is invalid because its UID is 0." 1>&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
}
|
||||
|
||||
rm -f $priv_check_temp
|
||||
|
Loading…
Reference in New Issue
Block a user