]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
TEST-54-CREDS: add test case for credential dir masking 39651/head
authorMike Yuan <me@yhndnzj.com>
Sun, 9 Nov 2025 17:22:26 +0000 (18:22 +0100)
committerMike Yuan <me@yhndnzj.com>
Sun, 9 Nov 2025 22:38:59 +0000 (23:38 +0100)
test/units/TEST-54-CREDS.sh

index 479417dea00f1099f7469400e42b1f1373ceb1c4..5cfa19905abe7f661462a5564607e6bcb3bdf6f7 100755 (executable)
@@ -554,4 +554,18 @@ run0 -u testuser --pipe mkdir -p /home/testuser/.config/credstore.encrypted
 run0 -u testuser --pipe systemd-creds encrypt --user --name=brummbaer - /home/testuser/.config/credstore.encrypted/brummbaer < /tmp/brummbaer.data
 run0 -u testuser --pipe systemd-run --user --pipe -p ImportCredential=brummbaer systemd-creds cat brummbaer | cmp /tmp/brummbaer.data
 
+# https://github.com/systemd/systemd/pull/39651
+TESTUSER_CRED_DIR="/run/user/$(id -u testuser)/credentials"
+
+PID="$(systemd-notify --fork -- systemd-run -M testuser@ --user --wait --unit=brummbaer.service -p LoadCredential=brummbaer sleep infinity)"
+[[ -d "$TESTUSER_CRED_DIR/brummbaer.service" ]]
+[[ -f "$TESTUSER_CRED_DIR/brummbaer.service/brummbaer" ]]
+
+systemd-run -M testuser@ --user --wait -p PrivateMounts=yes -p ImportCredential=brummbaer \
+    bash -xec "[[ ! -d '$TESTUSER_CRED_DIR/brummbaer.service' ]] && [[ \$(stat -c %a /run/credentials) -eq 0 ]]"
+systemd-run -M testuser@ --user --wait -p ImportCredential=brummbaer \
+    test -d "$TESTUSER_CRED_DIR/brummbaer.service"
+
+kill "$PID"
+
 touch /testok