mirror of
https://github.com/systemd/systemd.git
synced 2024-11-24 10:43:35 +08:00
test-execute: add nfsnobody alternative as a nobody user
This commit is contained in:
parent
19c0b0b9a5
commit
50f130c286
@ -1541,6 +1541,7 @@ EXTRA_DIST += \
|
||||
test/test-execute/exec-passenvironment-repeated.service \
|
||||
test/test-execute/exec-passenvironment.service \
|
||||
test/test-execute/exec-group.service \
|
||||
test/test-execute/exec-group-nfsnobody.service \
|
||||
test/test-execute/exec-ignoresigpipe-no.service \
|
||||
test/test-execute/exec-ignoresigpipe-yes.service \
|
||||
test/test-execute/exec-personality-x86-64.service \
|
||||
@ -1557,7 +1558,9 @@ EXTRA_DIST += \
|
||||
test/test-execute/exec-systemcallfilter-not-failing2.service \
|
||||
test/test-execute/exec-systemcallfilter-not-failing.service \
|
||||
test/test-execute/exec-systemcallfilter-system-user.service \
|
||||
test/test-execute/exec-systemcallfilter-system-user-nfsnobody.service \
|
||||
test/test-execute/exec-user.service \
|
||||
test/test-execute/exec-user-nfsnobody.service \
|
||||
test/test-execute/exec-workingdirectory.service \
|
||||
test/test-execute/exec-umask-0177.service \
|
||||
test/test-execute/exec-umask-default.service \
|
||||
@ -1574,10 +1577,13 @@ EXTRA_DIST += \
|
||||
test/test-execute/exec-capabilityboundingset-reset.service \
|
||||
test/test-execute/exec-capabilityboundingset-simple.service \
|
||||
test/test-execute/exec-capabilityambientset.service \
|
||||
test/test-execute/exec-capabilityambientset-nfsnobody.service \
|
||||
test/test-execute/exec-capabilityambientset-merge.service \
|
||||
test/test-execute/exec-capabilityambientset-merge-nfsnobody.service \
|
||||
test/test-execute/exec-runtimedirectory.service \
|
||||
test/test-execute/exec-runtimedirectory-mode.service \
|
||||
test/test-execute/exec-runtimedirectory-owner.service \
|
||||
test/test-execute/exec-runtimedirectory-owner-nfsnobody.service \
|
||||
test/bus-policy/hello.conf \
|
||||
test/bus-policy/methods.conf \
|
||||
test/bus-policy/ownerships.conf \
|
||||
|
@ -134,23 +134,29 @@ static void test_exec_systemcall_system_mode_with_user(Manager *m) {
|
||||
#ifdef HAVE_SECCOMP
|
||||
if (getpwnam("nobody"))
|
||||
test(m, "exec-systemcallfilter-system-user.service", 0, CLD_EXITED);
|
||||
else if (getpwnam("nfsnobody"))
|
||||
test(m, "exec-systemcallfilter-system-user-nfsnobody.service", 0, CLD_EXITED);
|
||||
else
|
||||
log_error_errno(errno, "Skipping test_exec_systemcall_system_mode_with_user, could not find nobody user: %m");
|
||||
log_error_errno(errno, "Skipping test_exec_systemcall_system_mode_with_user, could not find nobody/nfsnobody user: %m");
|
||||
#endif
|
||||
}
|
||||
|
||||
static void test_exec_user(Manager *m) {
|
||||
if (getpwnam("nobody"))
|
||||
test(m, "exec-user.service", 0, CLD_EXITED);
|
||||
else if (getpwnam("nfsnobody"))
|
||||
test(m, "exec-user-nfsnobody.service", 0, CLD_EXITED);
|
||||
else
|
||||
log_error_errno(errno, "Skipping test_exec_user, could not find nobody user: %m");
|
||||
log_error_errno(errno, "Skipping test_exec_user, could not find nobody/nfsnobody user: %m");
|
||||
}
|
||||
|
||||
static void test_exec_group(Manager *m) {
|
||||
if (getgrnam("nobody"))
|
||||
test(m, "exec-group.service", 0, CLD_EXITED);
|
||||
else if (getgrnam("nfsnobody"))
|
||||
test(m, "exec-group-nfsnobody.service", 0, CLD_EXITED);
|
||||
else
|
||||
log_error_errno(errno, "Skipping test_exec_group, could not find nobody group: %m");
|
||||
log_error_errno(errno, "Skipping test_exec_group, could not find nobody/nfsnobody group: %m");
|
||||
}
|
||||
|
||||
static void test_exec_environment(Manager *m) {
|
||||
@ -213,8 +219,10 @@ static void test_exec_runtimedirectory(Manager *m) {
|
||||
test(m, "exec-runtimedirectory-mode.service", 0, CLD_EXITED);
|
||||
if (getgrnam("nobody"))
|
||||
test(m, "exec-runtimedirectory-owner.service", 0, CLD_EXITED);
|
||||
else if (getgrnam("nfsnobody"))
|
||||
test(m, "exec-runtimedirectory-owner-nfsnobody.service", 0, CLD_EXITED);
|
||||
else
|
||||
log_error_errno(errno, "Skipping test_exec_runtimedirectory-owner, could not find nobody group: %m");
|
||||
log_error_errno(errno, "Skipping test_exec_runtimedirectory-owner, could not find nobody/nfsnobody group: %m");
|
||||
}
|
||||
|
||||
static void test_exec_capabilityboundingset(Manager *m) {
|
||||
@ -243,9 +251,15 @@ static void test_exec_capabilityambientset(Manager *m) {
|
||||
* in the first place for the tests. */
|
||||
r = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0);
|
||||
if (r >= 0 || errno != EINVAL) {
|
||||
test(m, "exec-capabilityambientset.service", 0, CLD_EXITED);
|
||||
test(m, "exec-capabilityambientset-merge.service", 0, CLD_EXITED);
|
||||
}
|
||||
if (getpwnam("nobody")) {
|
||||
test(m, "exec-runtimedirectory-owner.service", 0, CLD_EXITED);
|
||||
} else if (getpwnam("nfsnobody")) {
|
||||
test(m, "exec-capabilityambientset.service", 0, CLD_EXITED);
|
||||
test(m, "exec-capabilityambientset-merge.service", 0, CLD_EXITED);
|
||||
} else
|
||||
log_error_errno(errno, "Skipping test_exec_capabilityambientset, could not find nobody/nfsnobody user: %m");
|
||||
} else
|
||||
log_error_errno(errno, "Skipping test_exec_capabilityambientset, the kernel does not support ambient capabilities: %m");
|
||||
}
|
||||
|
||||
static void test_exec_privatenetwork(Manager *m) {
|
||||
|
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Test for AmbientCapabilities
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'c=$$(grep "CapAmb:" /proc/self/status); test "$$c" = "CapAmb: 0000000000003000"'
|
||||
Type=oneshot
|
||||
User=nfsnobody
|
||||
AmbientCapabilities=CAP_NET_ADMIN
|
||||
AmbientCapabilities=CAP_NET_RAW
|
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for AmbientCapabilities
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'c=$$(grep "CapAmb:" /proc/self/status); test "$$c" = "CapAmb: 0000000000003000"'
|
||||
Type=oneshot
|
||||
User=nfsnobody
|
||||
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW
|
7
test/test-execute/exec-group-nfsnobody.service
Normal file
7
test/test-execute/exec-group-nfsnobody.service
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Test for Group
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$(id -n -g)" = "nfsnobody"'
|
||||
Type=oneshot
|
||||
Group=nfsnobody
|
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Test for RuntimeDirectory owner (must not be the default group of the user if Group is set)
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'group=$$(stat -c %%G /tmp/test-exec_runtimedirectory-owner); test "$$group" = "nfsnobody"'
|
||||
Type=oneshot
|
||||
Group=nfsnobody
|
||||
User=root
|
||||
RuntimeDirectory=test-exec_runtimedirectory-owner
|
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Test for SystemCallFilter in system mode with User set
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/echo "Foo bar"
|
||||
Type=oneshot
|
||||
User=nfsnobody
|
||||
SystemCallFilter=~read write open execve ioperm
|
||||
SystemCallFilter=ioctl
|
||||
SystemCallFilter=read write open execve
|
||||
SystemCallFilter=~ioperm
|
7
test/test-execute/exec-user-nfsnobody.service
Normal file
7
test/test-execute/exec-user-nfsnobody.service
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Test for User
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$USER" = "nfsnobody"'
|
||||
Type=oneshot
|
||||
User=nfsnobody
|
Loading…
Reference in New Issue
Block a user