From: Yu Watanabe Date: Sat, 12 Aug 2023 13:08:47 +0000 (+0900) Subject: test-execute: add tests for credentials directory with mount namespace X-Git-Tag: v255-rc1~669^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F28787%2Fhead;p=thirdparty%2Fsystemd.git test-execute: add tests for credentials directory with mount namespace This also adds cases that open_tree() and move_mount() are filtered, to emulate old kernel behavior. --- diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 0be66c2c7bf..847415b9ae4 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -282,7 +282,11 @@ static void test_exec_cpuaffinity(Manager *m) { static void test_exec_credentials(Manager *m) { test(m, "exec-set-credential.service", 0, CLD_EXITED); + test(m, "exec-set-credential-with-mount-namespace.service", 0, CLD_EXITED); + test(m, "exec-set-credential-with-seccomp.service", 0, CLD_EXITED); test(m, "exec-load-credential.service", MANAGER_IS_SYSTEM(m) ? 0 : EXIT_CREDENTIALS, CLD_EXITED); + test(m, "exec-load-credential-with-mount-namespace.service", MANAGER_IS_SYSTEM(m) ? 0 : EXIT_CREDENTIALS, CLD_EXITED); + test(m, "exec-load-credential-with-seccomp.service", MANAGER_IS_SYSTEM(m) ? 0 : EXIT_CREDENTIALS, CLD_EXITED); test(m, "exec-credentials-dir-specifier.service", MANAGER_IS_SYSTEM(m) ? 0 : EXIT_CREDENTIALS, CLD_EXITED); } diff --git a/test/test-execute/exec-load-credential-with-mount-namespace.service b/test/test-execute/exec-load-credential-with-mount-namespace.service new file mode 100644 index 00000000000..fd71cf67179 --- /dev/null +++ b/test/test-execute/exec-load-credential-with-mount-namespace.service @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Test for LoadCredential= + +[Service] +ExecStart=/bin/sh -x -c 'test "$$(cat %d/test-execute.load-credential)" = "foo"' +Type=oneshot +LoadCredential=test-execute.load-credential +PrivateMounts=yes diff --git a/test/test-execute/exec-load-credential-with-seccomp.service b/test/test-execute/exec-load-credential-with-seccomp.service new file mode 100644 index 00000000000..67303f2713a --- /dev/null +++ b/test/test-execute/exec-load-credential-with-seccomp.service @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Test for LoadCredential= + +[Service] +ExecStart=/bin/sh -x -c 'test "$$(cat %d/test-execute.load-credential)" = "foo"' +Type=oneshot +LoadCredential=test-execute.load-credential +SystemCallFilter=~open_tree move_mount diff --git a/test/test-execute/exec-set-credential-with-mount-namespace.service b/test/test-execute/exec-set-credential-with-mount-namespace.service new file mode 100644 index 00000000000..67d15e5dbb7 --- /dev/null +++ b/test/test-execute/exec-set-credential-with-mount-namespace.service @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Test for SetCredential= + +[Service] +ExecStart=/bin/sh -x -c 'test "$$(cat %d/test-execute.set-credential)" = "hoge"' +Type=oneshot +SetCredential=test-execute.set-credential:hoge +PrivateMounts=yes diff --git a/test/test-execute/exec-set-credential-with-seccomp.service b/test/test-execute/exec-set-credential-with-seccomp.service new file mode 100644 index 00000000000..778777b9478 --- /dev/null +++ b/test/test-execute/exec-set-credential-with-seccomp.service @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Test for SetCredential= + +[Service] +ExecStart=/bin/sh -x -c 'test "$$(cat %d/test-execute.set-credential)" = "hoge"' +Type=oneshot +SetCredential=test-execute.set-credential:hoge +SystemCallFilter=~open_tree move_mount