summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--strata/core/shadow.morph9
-rw-r--r--strata/foundation/systemd.morph5
2 files changed, 11 insertions, 3 deletions
diff --git a/strata/core/shadow.morph b/strata/core/shadow.morph
index 34ec6197..c8715a7d 100644
--- a/strata/core/shadow.morph
+++ b/strata/core/shadow.morph
@@ -6,13 +6,11 @@ configure-commands:
- |
./autogen.sh --with-selinux=no \
--sysconfdir=/etc \
- --with-pam=yes \
+ --with-libpam=yes \
--prefix="$PREFIX" \
--bindir=/bin
post-install-commands:
# Disable things handled by pam instead
-- rm "$DESTDIR/etc/limits"
-- rm "$DESTDIR/etc/login.access"
- |
for OPTION in FAIL_DELAY \
FAILLOG_ENAB \
@@ -48,3 +46,8 @@ post-install-commands:
else
echo 'ENCRYPT_METHOD SHA512' >>"$DESTDIR/etc/login.defs"
fi
+
+# The default pam.d config files have pam_selinux.so as a requirement, even
+# when shadow is configured '--with-selinux=no'. We change this default config
+# to make this requirement optional.
+- sed -i -e 's/\(.*\)required\(.*pam_selinux.so.*\)/\1optional\2/' "$DESTDIR"/etc/pam.d/*
diff --git a/strata/foundation/systemd.morph b/strata/foundation/systemd.morph
index efca734f..5dc48e70 100644
--- a/strata/foundation/systemd.morph
+++ b/strata/foundation/systemd.morph
@@ -39,3 +39,8 @@ post-install-commands:
EOF
# Use the pam config systemd provides
- cp -a "$DESTDIR/$PREFIX"/share/factory/etc/pam.d/* "$DESTDIR/etc/pam.d"
+
+# Add pam_deny.so to the default systemd-auth pam.d config file. Without
+# it, if shadow is configured to use PAM, it would be possible to login
+# to a system with the wrong password.
+- echo 'auth requisite pam_deny.so' >> "$DESTDIR"/etc/pam.d/system-auth