mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
fc9938d6f8
If the io.systemd.DynamicUser or io.systemd.Machine files exist, but nothing is listening on them, the nss-systemd module returns ECONNREFUSED and systemd-sysusers fails to creat the user/group. This is problematic when ran by packaging scripts, as the package assumes that after this has run, the user/group exist and can be used. adduser does not fail in the same situation. Change sysusers to print a loud warning but otherwise continue when NSS returns an error.
25 lines
611 B
Bash
Executable File
25 lines
611 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
# shellcheck source=test/units/util.sh
|
|
. "$(dirname "$0")"/util.sh
|
|
|
|
at_exit() {
|
|
set +e
|
|
userdel -r foobarbaz
|
|
umount /run/systemd/userdb/
|
|
}
|
|
|
|
# Check that we indeed run under root to make the rest of the test work
|
|
[[ "$(id -u)" -eq 0 ]]
|
|
|
|
trap at_exit EXIT
|
|
|
|
# Ensure that a non-responsive NSS socket doesn't make sysusers fail
|
|
mount -t tmpfs tmpfs /run/systemd/userdb/
|
|
touch /run/systemd/userdb/io.systemd.DynamicUser
|
|
echo 'u foobarbaz' | SYSTEMD_LOG_LEVEL=debug systemd-sysusers -
|
|
grep -q foobarbaz /etc/passwd
|