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.aix11:def:33
# The system must disable accounts after three consecutive unsuccessful login attempts.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
# no instance of loginretries is 0
# textfilecontent54_object (textfilecontent54_test)
test_1() {
[ "$(sed -En 's/^[ ]*loginretries[ ]*=[ ]*([0-9]+)/\1/p' '/etc/security/user')" -ne 0 ]
}
# no instance of loginretries is greater than 3
# textfilecontent54_object (textfilecontent54_test)
test_2() {
[ "$(sed -En 's/^[ ]*loginretries[ ]*=[ ]*([0-9]+)/\1/p' '/etc/security/user')" -le 3 ]
}
# default specifies loginretries
# textfilecontent54_object (textfilecontent54_test)
test_3() {
(sed -En 's/^([^:
]+):
([^:
]+=[^
]*
)*[ ]*loginretries = [0-9]+/\1/p' '/etc/security/user') | grep -qxF 'default'
}
# all users specify loginretries
# password_object (password_test)
test_4() {
! ( getent passwd .* &>/dev/null )
}
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 Definition: oval:mil.disa.fso.aix11:def:33
if ! [ -f /etc/security/user ]; then
echo "PASS"
exit 0
fi
if grep -q '^[ \t]*loginretries[ \t]*=[ \t]*[0-9]\+' /etc/security/user; then
if ! grep -q '^[ \t]*loginretries[ \t]*=[ \t]*0' /etc/security/user; then
if ! grep -q '^[ \t]*loginretries[ \t]*=[ \t]*3' /etc/security/user; then
echo "PASS"
exit 0
else
echo "FAIL"
exit 1
fi
else
echo "FAIL"
exit 1
fi
else
echo "PASS"
exit 0
fi