Files
authforge/debian/authforge.postinst

67 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# Reads the debconf answer and writes /etc/authforge/policy.d/00-debconf.conf
# exactly once, on first install. Subsequent upgrades/reconfigures don't
# touch the file — admin edits via authforgectl/GUI win.
set -e
# shellcheck source=/dev/null
. /usr/share/debconf/confmodule
POLICY_DIR=/etc/authforge/policy.d
SEED_FILE=$POLICY_DIR/00-debconf.conf
case "$1" in
configure)
# Only seed on first install: $2 is empty when no previous version
# was configured. Skip if the seed file already exists (admin may
# have written one manually before apt configured the metapackage).
if [ -z "$2" ] && [ ! -e "$SEED_FILE" ]; then
db_get authforge/initial-policy || true
mkdir -p "$POLICY_DIR"
case "$RET" in
"None")
: # no seed — leave dir empty
;;
"Optional everywhere")
cat > "$SEED_FILE" <<'EOF'
# /etc/authforge/policy.d/00-debconf.conf
# Seeded by debconf on first install. Edit via `authforgectl policy set`
# or the AuthForge GUI; admin edits override on next daemon reload.
[stacks.gdm-password]
mode = "optional"
methods = ["fido2"]
[stacks.sudo]
mode = "optional"
methods = ["fido2", "totp"]
[stacks.sshd]
mode = "optional"
methods = ["fido2"]
EOF
;;
"Required for sudo")
cat > "$SEED_FILE" <<'EOF'
# /etc/authforge/policy.d/00-debconf.conf
# Seeded by debconf on first install. Edit via `authforgectl policy set`
# or the AuthForge GUI; admin edits override on next daemon reload.
[stacks.sudo]
mode = "required"
methods = ["fido2", "totp"]
EOF
;;
esac
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0