The reconstructed evaluation script behind this rule's OVAL check(s) — every module a compound check combines, with this rule's own concrete values and DISA's SCC tool's real per-module mechanism curated from static teardown of SCC releases.
#!/bin/bash
# Reconstructed from oval:mil.disa.fso.redhat.rhel6:def:4002
# The system must prohibit the reuse of passwords within five iterations.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
# Make sure password reuse setting is set to at least 5 in /etc/pam.d/system-auth and appears not first.
# textfilecontent54_object (textfilecontent54_test)
test_1() {
[ "$(sed -En 's/^\s*password\s+(?:(?:requisite)|(?:required))\s+pam_pwhistory\.so[\t ]+[^#\n\r]*\s+remember=(\d+)(?:(?:\s)|(?:$))/\1/p' '/etc/pam.d/system-auth')" -ge 5 ]
}
# Make sure password reuse setting is set to at least 5 in /etc/pam.d/system-auth and appears first.
# textfilecontent54_object (textfilecontent54_test)
test_2() {
[ "$(sed -En 's/^\s*password\s+(?:(?:requisite)|(?:required))\s+pam_pwhistory\.so\s+remember=(\d+)(?:(?:\s)|(?:$))/\1/p' '/etc/pam.d/system-auth')" -ge 5 ]
}
# Make sure password reuse setting is set to at least 5 in /etc/pam.d/password-auth and appears not first.
# textfilecontent54_object (textfilecontent54_test)
test_3() {
[ "$(sed -En 's/^\s*password\s+(?:(?:requisite)|(?:required))\s+pam_pwhistory\.so[\t ]+[^#\n\r]*\s+remember=(\d+)(?:(?:\s)|(?:$))/\1/p' '/etc/pam.d/password-auth')" -ge 5 ]
}
# Make sure password reuse setting is set to at least 5 in /etc/pam.d/password-auth and appears first.
# textfilecontent54_object (textfilecontent54_test)
test_4() {
[ "$(sed -En 's/^\s*password\s+(?:(?:requisite)|(?:required))\s+pam_pwhistory\.so\s+remember=(\d+)(?:(?:\s)|(?:$))/\1/p' '/etc/pam.d/password-auth')" -ge 5 ]
}
if ( ( test_1 || test_2 ) && ( test_3 || test_4 ) ); then
echo "PASS"
else
echo "FAIL"
fi Assessment Script Powered by AISandbox-executed
A standalone Shell script to assess this control automatically. Review before running it in your environment.
Syntax-checked and actually executed in an isolated sandbox (not the real system this checks) — confirmed to run without errors.
#!/bin/sh
# oval:mil.disa.fso.redhat.rhel6:def:4002
if grep -qE '^\\s*password\\s+(?:(?:requisite)|(?:required))\\s+pam_pwhistory\\.so[\\t ]+[^#\\n\\r]*\\s+remember=5' /etc/pam.d/system-auth || grep -qE '^\\s*password\\s+(?:(?:requisite)|(?:required))\\s+pam_pwhistory\\.so\\s+remember=5' /etc/pam.d/system-auth || grep -qE '^\\s*password\\s+(?:(?:requisite)|(?:required))\\s+pam_pwhistory\\.so[\\t ]+[^#\\n\\r]*\\s+remember=5' /etc/pam.d/password-auth || grep -qE '^\\s*password\\s+(?:(?:requisite)|(?:required))\\s+pam_pwhistory\\.so\\s+remember=5' /etc/pam.d/password-auth
then
echo "PASS"
exit 0
else
echo "FAIL"
exit 1
fi