diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-08-21 17:40:11 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-08-22 20:18:57 +0200 |
| commit | 283d1eb046c1a36d35e1f924ca6a5b3006a9fd1d (patch) | |
| tree | 5b64d779e3a66c669abcb8be76a50f75a38df917 /test/scripts | |
| parent | 5c930593d35439011ec16081bb22c0b9a9f21b11 (diff) | |
| download | mullvadvpn-283d1eb046c1a36d35e1f924ca6a5b3006a9fd1d.tar.xz mullvadvpn-283d1eb046c1a36d35e1f924ca6a5b3006a9fd1d.zip | |
Spawn test processes as an unprivileged user by default
Fixes an issue where the connection-checker is allowed to leak traffic
on macOS
Diffstat (limited to 'test/scripts')
| -rw-r--r-- | test/scripts/ssh-setup.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/scripts/ssh-setup.sh b/test/scripts/ssh-setup.sh index 714756f45e..5ac5dea15e 100644 --- a/test/scripts/ssh-setup.sh +++ b/test/scripts/ssh-setup.sh @@ -9,6 +9,7 @@ RUNNER_DIR="$1" APP_PACKAGE="$2" PREVIOUS_APP="$3" UI_RUNNER="$4" +UNPRIVILEGED_USER="$5" # Copy over test runner to correct place @@ -21,6 +22,9 @@ for file in test-runner connection-checker $APP_PACKAGE $PREVIOUS_APP $UI_RUNNER cp -f "$SCRIPT_DIR/$file" "$RUNNER_DIR" done +# Unprivileged users need execute rights for connection checker +chmod 551 "${RUNNER_DIR}/connection-checker" + chown -R root "$RUNNER_DIR/" # Create service @@ -69,11 +73,18 @@ function setup_macos { </plist> EOF + create_test_user_macos + echo "Starting test runner service" launchctl load -w $RUNNER_PLIST_PATH } +function create_test_user_macos { + echo "Adding test user account" + sysadminctl -addUser "$UNPRIVILEGED_USER" -fullName "$UNPRIVILEGED_USER" -password "$UNPRIVILEGED_USER" +} + function setup_systemd { RUNNER_SERVICE_PATH="/etc/systemd/system/testrunner.service" @@ -94,10 +105,18 @@ EOF semanage fcontext -a -t bin_t "$RUNNER_DIR/.*" &> /dev/null || true + create_test_user_linux + systemctl enable testrunner.service systemctl start testrunner.service } +function create_test_user_linux { + echo "Adding test user account" + useradd -m "$UNPRIVILEGED_USER" + echo "$UNPRIVILEGED_USER:$UNPRIVILEGED_USER" | chpasswd +} + if [[ "$(uname -s)" == "Darwin" ]]; then setup_macos exit 0 |
