Download raw body.
gotd regress and doas(1)
As found by Mikhail, gotd regress test script run as root when the
test suite is invoked via doas(1). This happens because doas sets
the $LOGNAME environment veriable to the target user (root). Unlike
su(1) which leaves $LOGNAME set to the name of the original user.
This patch adds a sanity check to prevent running test scripts as root,
and switches to $USERNAME which works with both doas(1) and su(1).
This does not fix 'su -', which leaves $USERNAME unset and also sets
$LOGNAME to root. That is no big deal; people can just avoid 'su -',
or pass their intended GOTD_TEST_USER on the make command line.
ok?
make it easier to run gotd regress via doas(1)
diff b1142068fd26fa24285c533f10e3afcb61719759 32014c96a26e67fa0bf2fc74139ec6b68336c966
commit - b1142068fd26fa24285c533f10e3afcb61719759
commit + 32014c96a26e67fa0bf2fc74139ec6b68336c966
blob - cd20ee9bf8631fcd757767edf78df5f410e56161
blob + 1f10771a98fe00cf4c3029d94a41ae32341873e7
--- regress/gotd/Makefile
+++ regress/gotd/Makefile
@@ -12,7 +12,7 @@ GOTD_TEST_USER?=${LOGNAME}
GOTD_TEST_REPO!?=mktemp -d "$(GOTD_TEST_ROOT)/gotd-test-repo-XXXXXXXXX"
GOTD_TEST_REPO_URL=ssh://${GOTD_DEVUSER}@127.0.0.1/test-repo
-GOTD_TEST_USER?=${LOGNAME}
+GOTD_TEST_USER?=${USERNAME}
GOTD_TEST_USER_HOME!=userinfo $(GOTD_TEST_USER) | awk '/^dir/ {print $$2}'
# gotd.conf parameters
@@ -34,8 +34,12 @@ ensure_root:
ensure_root:
@if [[ `id -u` -ne 0 ]]; then \
- echo gotd test suite must be run by root >&2; \
+ echo gotd test suite must be started by root >&2; \
false; \
+ fi ; \
+ if [[ "$(GOTD_TEST_USER)" = "root" ]]; then \
+ echo GOTD_TEST_USER must be a non-root user >&2; \
+ false; \
fi
start_gotd_ro: ensure_root
gotd regress and doas(1)