diff --git a/tests/main/system-usernames-hooks/task.yaml b/tests/main/system-usernames-hooks/task.yaml new file mode 100644 index 00000000000..2ba9f74b0c4 --- /dev/null +++ b/tests/main/system-usernames-hooks/task.yaml @@ -0,0 +1,18 @@ +summary: exercise snap hooks using system-usernames + +details: | + Exercise a scenario in which a snap that uses system-usernames carries + hooks. Make sure that hooks are able to exercise functionality provided by + system-usernames. + +prepare: | + tests.cleanup defer "$TESTSTOOLS"/user-state remove-with-group snap_daemon + +execute: | + "$TESTSTOOLS"/snaps-state install-local test-snapd-sh + test-snapd-sh.sh -c 'setpriv --clear-groups \ + --reuid snap_daemon \ + --regid snap_daemon -- \ + id' + + "$TESTSTOOLS"/snaps-state install-local test-snapd-sh diff --git a/tests/main/system-usernames-hooks/test-snapd-sh/bin/sh b/tests/main/system-usernames-hooks/test-snapd-sh/bin/sh new file mode 100755 index 00000000000..0f845e07c5a --- /dev/null +++ b/tests/main/system-usernames-hooks/test-snapd-sh/bin/sh @@ -0,0 +1,3 @@ +#!/bin/sh +PS1='$ ' +exec /bin/sh "$@" diff --git a/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/install b/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/install new file mode 100755 index 00000000000..aeafb225b44 --- /dev/null +++ b/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/install @@ -0,0 +1,11 @@ +#!/bin/sh + +exec 2>&1 + +echo "running install hook" >> "$SNAP_COMMON"/hook.log + +mkdir "$SNAP_COMMON"/data +touch "$SNAP_COMMON"/data/foo + +chown -R snap_daemon "$SNAP_COMMON"/data +chgrp -R root "$SNAP_COMMON"/data diff --git a/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/post-refresh b/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/post-refresh new file mode 100755 index 00000000000..ce665912903 --- /dev/null +++ b/tests/main/system-usernames-hooks/test-snapd-sh/meta/hooks/post-refresh @@ -0,0 +1,11 @@ +#!/bin/sh + +exec 2>&1 + +echo "running post-refresh hook" >> "$SNAP_COMMON"/hook.log + +setpriv \ + --clear-groups \ + --reuid snap_daemon \ + --regid snap_daemon -- \ + /bin/sh -c "echo 'post refresh' >> $SNAP_COMMON/data/foo" diff --git a/tests/main/system-usernames-hooks/test-snapd-sh/meta/snap.yaml b/tests/main/system-usernames-hooks/test-snapd-sh/meta/snap.yaml new file mode 100644 index 00000000000..c945e1b2e61 --- /dev/null +++ b/tests/main/system-usernames-hooks/test-snapd-sh/meta/snap.yaml @@ -0,0 +1,11 @@ +name: test-snapd-sh +summary: Minimal snap for testing +version: 1.0 +base: core24 + +apps: + sh: + command: bin/sh + +system-usernames: + snap_daemon: shared