feat: complete session preferences and PAM fixture gates

This commit is contained in:
2026-09-26 02:44:29 +05:30
parent 83345a1842
commit f266a992b4
13 changed files with 473 additions and 5 deletions

27
scripts/test-pam-fixture.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/sh
# Run ignored PAM fault-injection tests against a disposable service policy.
set -eu
if [ "$(id -u)" -ne 0 ]; then
echo "pam-fixture: SKIP (root is required to install a temporary PAM policy)"
exit 0
fi
service="latchd-fixture-$$"
policy="/etc/pam.d/$service"
cleanup() {
rm -f "$policy"
}
trap cleanup EXIT HUP INT TERM
umask 077
cat >"$policy" <<'PAM'
# Disposable deny policy used only by the ignored fixture tests.
auth required pam_deny.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
PAM
LATCHD_PAM_FIXTURE_SERVICE="$service" \
cargo test --locked -p latchd-auth --test pam_fixture -- --ignored