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.hpux11:def:85
# All interactive users must be assigned a home directory in the /etc/passwd file.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
# For Trusted Mode: All interactive users have a home directory in /etc/passwd
# password_object (password_test)
test_1() {
(getent passwd '.*' | cut -d: -f6) | grep -Pq '\/.+'
}
# For SMSE: All interactive users have a home directory in /etc/security/default
# textfilecontent54_object (textfilecontent54_test)
test_2() {
[ "$(sed -En 's/^[^#]*ABORT_LOGIN_ON_MISSING_HOMEDIR[ \s]*=[ \s]*([0-9]+)/\1/p' '/etc/default/security')" -ge 1 ]
}
if ( test_1 || test_2 ); 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.hpux11:def:85 Shell script
if [ ! -f "/etc/passwd" ]; then echo "PASS"; exit 0; fi
for user in $(cut -d: -f1 /etc/passwd); do
home=$(cut -d: -f6 /etc/passwd | tr -d ''| sed "s/$user:/:/")
[ -n "$home" ] && [ -d "$home" ] || { mkdir "$home"; cp -R /etc/skel/* "$home"; chown "$user"."$user" "$home"; }
done
if [ ! -f "/etc/default/security" ]; then echo "PASS"; exit 0; fi
grep -q "^ABORT_LOGIN_ON_MISSING_HOMEDIR[ \\s]*=0$" /etc/default/security && { echo "FAIL"; exit 1; }
echo "PASS"; exit 0