From 4401d19c54b2691f0d3aa147b95d29168ae4bd54 Mon Sep 17 00:00:00 2001 From: Hieu Huynh Date: Sun, 13 Mar 2022 03:38:38 +0000 Subject: meta-ampere: Support Ampere password policy Implement Ampere password policy as followings: - Password must between 9-20 characters, 1 lower case, 1 upper case, one digit and 1 special character. - No more than 3 consecutive identical characters. Signed-off-by: Hieu Huynh Change-Id: I20134f51e06ef0aabeddfc4d1560acfa7483deab --- .../pam/libpam/pam.d/common-password | 30 ++++++++++++++++++++++ .../recipes-extended/pam/libpam_%.bbappend | 4 +++ 2 files changed, 34 insertions(+) create mode 100644 meta-ampere/meta-common/recipes-extended/pam/libpam/pam.d/common-password create mode 100644 meta-ampere/meta-common/recipes-extended/pam/libpam_%.bbappend (limited to 'meta-ampere/meta-common') diff --git a/meta-ampere/meta-common/recipes-extended/pam/libpam/pam.d/common-password b/meta-ampere/meta-common/recipes-extended/pam/libpam/pam.d/common-password new file mode 100644 index 0000000000..5a42680ee2 --- /dev/null +++ b/meta-ampere/meta-common/recipes-extended/pam/libpam/pam.d/common-password @@ -0,0 +1,30 @@ +# +# /etc/pam.d/common-password - password-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define the services to be +# used to change user passwords. The default is pam_unix. + +# Explanation of pam_unix options: +# +# The "sha512" option enables salted SHA512 passwords. Without this option, +# the default is Unix crypt. Prior releases used the option "md5". +# +# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in +# login.defs. +# +# See the pam_unix manpage for other options. + +# here are the per-package modules (the "Primary" block) +password [success=ok default=die] pam_cracklib.so debug enforce_for_root reject_username minlen=9 difok=0 lcredit=-1 ocredit=-1 dcredit=-1 ucredit=-1 maxrepeat=3 +password [success=ok default=die] pam_ipmicheck.so spec_grp_name=ipmi use_authtok +password [success=ok ignore=ignore default=die] pam_pwhistory.so debug enforce_for_root remember=0 use_authtok +password [success=ok default=die] pam_unix.so sha512 use_authtok +password [success=1 default=die] pam_ipmisave.so spec_grp_name=ipmi spec_pass_file=/etc/ipmi_pass key_file=/etc/key_file +# here's the fallback if no module succeeds +password requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +password required pam_permit.so +# and here are more per-package modules (the "Additional" block) diff --git a/meta-ampere/meta-common/recipes-extended/pam/libpam_%.bbappend b/meta-ampere/meta-common/recipes-extended/pam/libpam_%.bbappend new file mode 100644 index 0000000000..4ede0332eb --- /dev/null +++ b/meta-ampere/meta-common/recipes-extended/pam/libpam_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI += " file://pam.d/common-password \ + " -- cgit v1.2.3