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
(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