]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add tests for RestrictNamespaces=
authorDjalal Harouni <tixxdz@opendz.org>
Tue, 15 Nov 2016 14:50:19 +0000 (15:50 +0100)
committerDjalal Harouni <tixxdz@opendz.org>
Tue, 15 Nov 2016 14:50:19 +0000 (15:50 +0100)
Makefile.am
src/test/test-execute.c
test/test-execute/exec-restrict-namespaces-mnt-blacklist.service [new file with mode: 0644]
test/test-execute/exec-restrict-namespaces-mnt.service [new file with mode: 0644]
test/test-execute/exec-restrict-namespaces-no.service [new file with mode: 0644]
test/test-execute/exec-restrict-namespaces-yes.service [new file with mode: 0644]

index 6173e7a40f43a873cfccb6935b6c2407c9efd420..47c2ec8a8d4cc2f7b7ec606e93bd30b1c5445729 100644 (file)
@@ -1684,6 +1684,10 @@ EXTRA_DIST += \
        test/test-execute/exec-runtimedirectory-mode.service \
        test/test-execute/exec-runtimedirectory-owner.service \
        test/test-execute/exec-runtimedirectory-owner-nfsnobody.service \
+       test/test-execute/exec-restrict-namespaces-no.service \
+       test/test-execute/exec-restrict-namespaces-yes.service \
+       test/test-execute/exec-restrict-namespaces-mnt.service \
+       test/test-execute/exec-restrict-namespaces-mnt-blacklist.service \
        test/bus-policy/hello.conf \
        test/bus-policy/methods.conf \
        test/bus-policy/ownerships.conf \
index 6029853e3e5436a99484dd01bfa540dcfe7021ab..b2ea358b8c44c6e78f906eb4de1548549494ef0f 100644 (file)
@@ -219,6 +219,18 @@ static void test_exec_systemcallerrornumber(Manager *m) {
 #endif
 }
 
+static void test_exec_restrict_namespaces(Manager *m) {
+#ifdef HAVE_SECCOMP
+        if (!is_seccomp_available())
+                return;
+
+        test(m, "exec-restrict-namespaces-no.service", 0, CLD_EXITED);
+        test(m, "exec-restrict-namespaces-yes.service", 1, CLD_EXITED);
+        test(m, "exec-restrict-namespaces-mnt.service", 0, CLD_EXITED);
+        test(m, "exec-restrict-namespaces-mnt-blacklist.service", 1, CLD_EXITED);
+#endif
+}
+
 static void test_exec_systemcall_system_mode_with_user(Manager *m) {
 #ifdef HAVE_SECCOMP
         if (!is_seccomp_available())
@@ -435,6 +447,7 @@ int main(int argc, char *argv[]) {
                 test_exec_privatenetwork,
                 test_exec_systemcallfilter,
                 test_exec_systemcallerrornumber,
+                test_exec_restrict_namespaces,
                 test_exec_user,
                 test_exec_group,
                 test_exec_supplementary_groups,
diff --git a/test/test-execute/exec-restrict-namespaces-mnt-blacklist.service b/test/test-execute/exec-restrict-namespaces-mnt-blacklist.service
new file mode 100644 (file)
index 0000000..ab909cb
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=Test RestrictNamespaces=~mnt
+
+[Service]
+RestrictNamespaces=~mnt
+ExecStart=/bin/sh -x -c 'unshare -m'
+Type=oneshot
diff --git a/test/test-execute/exec-restrict-namespaces-mnt.service b/test/test-execute/exec-restrict-namespaces-mnt.service
new file mode 100644 (file)
index 0000000..1aeed72
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=Test RestrictNamespaces=mnt
+
+[Service]
+RestrictNamespaces=mnt
+ExecStart=/bin/sh -x -c 'unshare -m'
+Type=oneshot
diff --git a/test/test-execute/exec-restrict-namespaces-no.service b/test/test-execute/exec-restrict-namespaces-no.service
new file mode 100644 (file)
index 0000000..3350030
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=Test RestrictNamespaces=no
+
+[Service]
+RestrictNamespaces=no
+ExecStart=/bin/sh -x -c 'unshare -m -u -i -n -p -f'
+Type=oneshot
diff --git a/test/test-execute/exec-restrict-namespaces-yes.service b/test/test-execute/exec-restrict-namespaces-yes.service
new file mode 100644 (file)
index 0000000..3fe70e2
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=Test RestrictNamespaces=yes
+
+[Service]
+RestrictNamespaces=yes
+ExecStart=/bin/sh -x -c 'unshare -m'
+Type=oneshot