]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-execute: also mount tmpfs on /dev/shm
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 17 Feb 2023 01:21:58 +0000 (10:21 +0900)
committerLennart Poettering <lennart@poettering.net>
Fri, 17 Feb 2023 08:55:05 +0000 (09:55 +0100)
Otherwise, if /dev/shm has a directory that cannot be accessible by
unprivileged user, then we cannot pick a dynamic user, and test service
may fail with unexpected error code:
---
Failed to enter shared memory directory /dev/shm/systemd-watch-bind-BqAGlN: Permission denied
exec-dynamicuser-supplementarygroups.service: Failed to update dynamic user credentials: Device or resource busy
exec-dynamicuser-supplementarygroups.service: Failed at step USER spawning /bin/sh: Device or resource busy
src/test/test-execute.c:885:test_exec_dynamicuser: exec-dynamicuser-supplementarygroups.service: can_unshare=no: exit status 217, expected 216
---

Follow-up for 4e032f654b94c2544ccf937209303766dfa66c24.

src/test/test-execute.c

index e19565ef922478370ffdd8900ad1024944bf4e25..f8c64b60426f14f1135727418710c27d92fbb065 100644 (file)
@@ -1267,7 +1267,7 @@ static int prepare_ns(const char *process_name) {
                 assert_se(mkdir_p(PRIVATE_UNIT_DIR, 0755) >= 0);
 
                 /* Mount tmpfs on the following directories to make not StateDirectory= or friends disturb the host. */
-                FOREACH_STRING(p, "/root", "/tmp", "/var/tmp", "/var/lib", PRIVATE_UNIT_DIR)
+                FOREACH_STRING(p, "/dev/shm", "/root", "/tmp", "/var/tmp", "/var/lib", PRIVATE_UNIT_DIR)
                         assert_se(mount_nofollow_verbose(LOG_DEBUG, "tmpfs", p, "tmpfs", MS_NOSUID|MS_NODEV, NULL) >= 0);
 
                 /* Copy unit files to make them accessible even when unprivileged. */