IMP: enhance scripts that check duplicate UID

Add exception handling in 13.14_check_duplicate_uid
Clarifies output message and explicitly displays found exceptions
Add tests
Apply shellcheck recommendation

modified:   bin/hardening/13.14_check_duplicate_uid.sh
modified:   bin/hardening/13.5_find_0_uid_non_root_account.sh
new file:   tests/hardening/13.14_check_duplicate_uid.sh
new file:   tests/hardening/13.5_find_0_uid_non_root_account.sh
This commit is contained in:
Charles Herlin
2019-02-13 16:07:06 +01:00
parent 09ae131de9
commit 1281860401
4 changed files with 116 additions and 25 deletions

View File

@ -0,0 +1,33 @@
# run-shellcheck
test_audit() {
describe Running on blank host
register_test retvalshouldbe 0
register_test contain "[ OK ] No duplicate UIDs"
# shellcheck disable=2154
run blank /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
useradd usertest1
useradd usertest2
sed -i 's/1001/1000/g' /etc/passwd
# Proceed to operation that will end up to a non compliant system
describe Tests purposely failing
register_test retvalshouldbe 1
register_test contain "[ KO ] Duplicate UID (1000): usertest1 usertest2"
run noncompliant /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
# shellcheck disable=2016
echo 'EXCEPTIONS="$EXCEPTIONS 1000"' >> /opt/debian-cis/etc/conf.d/"${script}".cfg
describe Adding exceptions
register_test retvalshouldbe 0
register_test contain "[ OK ] No duplicate UIDs apart from configured exceptions: (1000): usertest1 usertest2"
run exception /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
# Cleanup
userdel usertest1
userdel usertest2
sed -i '/usertest1/d' /etc/group
sed -i '/usertest2/d' /etc/group
}

View File

@ -0,0 +1,31 @@
# run-shellcheck
test_audit() {
describe Running on blank host
register_test retvalshouldbe 0
register_test contain "[ OK ] No account with uid 0 appart from root"
# shellcheck disable=2154
run blank /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
useradd usertest1
sed -i 's/1000/0/g' /etc/passwd
# Proceed to operation that will end up to a non compliant system
describe Tests purposely failing
register_test retvalshouldbe 1
register_test contain "[ KO ] Some accounts have uid 0: usertest1"
run noncompliant /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
# shellcheck disable=2016
echo 'EXCEPTIONS="$EXCEPTIONS usertest1"' >> /opt/debian-cis/etc/conf.d/"${script}".cfg
describe Adding exceptions
register_test retvalshouldbe 0
register_test contain "[ OK ] No account with uid 0 appart from root and configured exceptions: usertest1"
run exception /opt/debian-cis/bin/hardening/"${script}".sh --audit-all
# Cleanup
sed -i '/usertest1/d' /etc/passwd
sed -i '/usertest1/d' /etc/shadow
sed -i '/usertest1/d' /etc/group
}