From: Miroslav Lichvar Date: Thu, 14 Nov 2024 09:53:35 +0000 (+0100) Subject: test: make system test users configurable X-Git-Tag: 4.7-pre1~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb8050d884295c6792560f0243500d79659d3221;p=thirdparty%2Fchrony.git test: make system test users configurable --- diff --git a/test/system/006-privdrop b/test/system/006-privdrop index 6d7b0c9d..8f6e3922 100755 --- a/test/system/006-privdrop +++ b/test/system/006-privdrop @@ -4,7 +4,7 @@ check_chronyd_features PRIVDROP || test_skip "PRIVDROP support disabled" -user="nobody" +priv_drop=1 test_start "dropping of root privileges" diff --git a/test/system/010-nts b/test/system/010-nts index b215efa3..d2a2184b 100755 --- a/test/system/010-nts +++ b/test/system/010-nts @@ -22,7 +22,7 @@ certtool --generate-privkey --key-type=ed25519 --outfile $TEST_DIR/server.key \ &> $TEST_DIR/certtool.log certtool --generate-self-signed --load-privkey $TEST_DIR/server.key \ --template $TEST_DIR/cert.cfg --outfile $TEST_DIR/server.crt &>> $TEST_DIR/certtool.log -chown $user $TEST_DIR/server.* +chown "$(get_user)" $TEST_DIR/server.* ntpport=$(get_free_port) ntsport=$(get_free_port) diff --git a/test/system/011-systemd b/test/system/011-systemd index 10499661..fbd7fe95 100755 --- a/test/system/011-systemd +++ b/test/system/011-systemd @@ -26,7 +26,7 @@ certtool --generate-privkey --key-type=ed25519 --outfile $TEST_DIR/server.key \ &> $TEST_DIR/certtool.log certtool --generate-self-signed --load-privkey $TEST_DIR/server.key \ --template $TEST_DIR/cert.cfg --outfile $TEST_DIR/server.crt &>> $TEST_DIR/certtool.log -chown $user $TEST_DIR/server.* +chown "$(get_user)" $TEST_DIR/server.* ntpport=$(get_free_port) ntsport=$(get_free_port) diff --git a/test/system/104-systemdirs b/test/system/104-systemdirs index 15508dc5..420b2fb9 100755 --- a/test/system/104-systemdirs +++ b/test/system/104-systemdirs @@ -3,10 +3,11 @@ TEST_LIBDIR=${CHRONY_LIBDIR:-/var/lib/chrony} TEST_LOGDIR=${CHRONY_LOGDIR:-/var/log/chrony} TEST_RUNDIR=${CHRONY_RUNDIR:-/var/run/chrony} +TEST_PRIVDROP_USER=$(ls -ld "$TEST_RUNDIR" 2> /dev/null | awk '{print $3}') . ./test.common -user=$(ls -ld "$TEST_RUNDIR" 2> /dev/null | awk '{print $3}') +priv_drop=1 test_start "system directories" diff --git a/test/system/test.common b/test/system/test.common index c389b484..79e25a83 100644 --- a/test/system/test.common +++ b/test/system/test.common @@ -21,8 +21,12 @@ TEST_LIBDIR=${TEST_LIBDIR:-$TEST_DIR} TEST_LOGDIR=${TEST_LOGDIR:-$TEST_DIR} TEST_RUNDIR=${TEST_RUNDIR:-$TEST_DIR} TEST_SCFILTER=${TEST_SCFILTER:-0} +TEST_ROOT_USER=${TEST_ROOT_USER:-root} +TEST_PRIVDROP_USER=${TEST_PRIVDROP_USER:-nobody} test_start() { + local user=$(get_user) + check_chronyd_features NTP CMDMON || test_skip "NTP/CMDMON support disabled" [ "${#TEST_DIR}" -ge 5 ] || test_skip "invalid TEST_DIR" @@ -36,7 +40,7 @@ test_start() { rm -f "$TEST_LIBDIR"/* "$TEST_LOGDIR"/* "$TEST_RUNDIR"/* - if [ "$user" != "root" ]; then + if [ "$user" != "$TEST_ROOT_USER" ]; then id -u "$user" > /dev/null 2> /dev/null || test_skip "missing user $user" chown "$user:$(id -g "$user")" "$TEST_DIR" || test_skip "could not chown $TEST_DIR" su "$user" -s /bin/sh -c "touch $TEST_DIR/test" 2> /dev/null || \ @@ -108,7 +112,7 @@ default_clock_control=0 default_server=127.0.0.1 default_server_name=127.0.0.1 default_server_options="" -default_user=root +default_priv_drop=0 # Initialize test settings from their defaults for defoptname in ${!default_*}; do @@ -183,6 +187,14 @@ get_cmdsocket() { echo "$TEST_RUNDIR/chronyd.sock" } +get_user() { + if [ "$priv_drop" -ne 0 ]; then + echo "$TEST_PRIVDROP_USER" + else + echo "$TEST_ROOT_USER" + fi +} + # Find a free port in the 10000-20000 range (their use is racy) get_free_port() { local port @@ -197,8 +209,9 @@ get_free_port() { } generate_chrony_conf() { - local ntpport cmdport + local user ntpport cmdport + user=$(get_user) ntpport=$(get_free_port) cmdport=$(get_free_port) @@ -246,7 +259,7 @@ get_chronyd_options() { [ "$clock_control" -eq 0 ] && echo "-x" echo "-l $(get_logfile)" echo "-f $(get_conffile)" - echo "-u $user" + echo "-u $(get_user)" echo "-F $TEST_SCFILTER" echo "$extra_chronyd_options" }