mirror of https://github.com/CISOfy/lynis.git
[AUTH-9328] Test /etc/profile.d first for customizations of umask
This commit is contained in:
parent
23b877f018
commit
f434432954
|
@ -915,32 +915,57 @@
|
||||||
Register --test-no AUTH-9328 --weight L --network NO --category security --description "Default umask values"
|
Register --test-no AUTH-9328 --weight L --network NO --category security --description "Default umask values"
|
||||||
if [ ${SKIPTEST} -eq 0 ]; then
|
if [ ${SKIPTEST} -eq 0 ]; then
|
||||||
Display --indent 2 --text "- Determining default umask"
|
Display --indent 2 --text "- Determining default umask"
|
||||||
|
GOOD_UMASK=0
|
||||||
|
WEAK_UMASK=0
|
||||||
|
|
||||||
# /etc/profile
|
# /etc/profile.d
|
||||||
|
LogText "Test: Checking /etc/profile.d directory"
|
||||||
|
if [ -d /etc/profile.d ]; then
|
||||||
|
FOUND=0
|
||||||
|
FIND=$(ls /etc/profile.d/* 2> /dev/null)
|
||||||
|
if [ ! -z "${FIND}" ]; then
|
||||||
|
LogText "Result: found /etc/profile.d, with one or more files in it"
|
||||||
|
for FILE in ${FIND}; do
|
||||||
|
HAS_MASK=$(grep umask ${FILE} | sed 's/^[ \t]*//' | grep -v "^#" | awk '{ print $2 }')
|
||||||
|
for MASK in ${HAS_MASK}; do
|
||||||
|
if [ "${MASK}" = "077" -o "${MASK}" = "027" ]; then
|
||||||
|
LogText "Result: found a strong umask '${MASK}' set in ${FILE}"
|
||||||
|
GOOD_UMASK=1
|
||||||
|
else
|
||||||
|
LogText "Result: found a weak umask '${MASK}' set in ${FILE}"
|
||||||
|
WEAK_UMASK=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
else
|
||||||
|
LogText "Result: found /etc/profile.d, but it does not contain any files"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
LogText "Result: /etc/profile.d not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test /etc/profile (only if we didn't find a good umask in profile.d)
|
||||||
LogText "Test: Checking /etc/profile"
|
LogText "Test: Checking /etc/profile"
|
||||||
if [ -f /etc/profile ]; then
|
if [ -f /etc/profile -a ${GOOD_UMASK} -eq 0 ]; then
|
||||||
LogText "Result: file /etc/profile exists"
|
LogText "Result: file /etc/profile exists"
|
||||||
LogText "Test: Checking umask value in /etc/profile"
|
LogText "Test: Checking umask value in /etc/profile"
|
||||||
FIND=`grep "umask" /etc/profile | sed 's/^[ \t]*//' | grep -v "^#" | awk '{ print $2 }'`
|
FIND=$(grep "umask" /etc/profile | sed 's/^[ \t]*//' | grep -v "^#" | awk '{ print $2 }')
|
||||||
FIND2=`grep "umask" /etc/profile | sed 's/^[ \t]*//' | grep -v "^#" | awk '{ print $2 }' | wc -l`
|
FIND2=$(grep "umask" /etc/profile | sed 's/^[ \t]*//' | grep -v "^#" | awk '{ print $2 }' | wc -l)
|
||||||
WEAK_UMASK=0
|
|
||||||
FOUND_UMASK=0
|
FOUND_UMASK=0
|
||||||
if [ "${FIND2}" = "0" ]; then
|
if [ "${FIND2}" = "0" ]; then
|
||||||
LogText "Result: did not find umask in /etc/profile"
|
LogText "Result: did not find umask in /etc/profile"
|
||||||
#YYY possibly weak umask
|
|
||||||
elif [ "${FIND2}" = "1" ]; then
|
elif [ "${FIND2}" = "1" ]; then
|
||||||
LogText "Result: found umask (prefixed with spaces)"
|
LogText "Result: found umask (prefixed with spaces)"
|
||||||
FOUND_UMASK=1
|
FOUND_UMASK=1
|
||||||
if [ ! "${FIND}" = "077" -a ! "${FIND}" = "027" ]; then
|
if [ ! "${FIND}" = "077" -a ! "${FIND}" = "027" ]; then
|
||||||
LogText "Result: found umask ${FIND}, which could be more strict"
|
LogText "Result: found umask ${FIND}, which could be more strict"
|
||||||
WEAK_UMASK=1
|
WEAK_UMASK=1
|
||||||
AddHP 1 2
|
else
|
||||||
else
|
|
||||||
LogText "Result: found umask ${FIND}, which is fine"
|
LogText "Result: found umask ${FIND}, which is fine"
|
||||||
AddHP 2 2
|
GOOD_UMASK=1
|
||||||
fi
|
fi
|
||||||
# Found more than 1 umask value in profile
|
# Found more than 1 umask value in profile
|
||||||
else
|
else
|
||||||
LogText "Result: found multiple umask values configured in /etc/profile"
|
LogText "Result: found multiple umask values configured in /etc/profile"
|
||||||
FOUND_UMASK=1
|
FOUND_UMASK=1
|
||||||
for I in ${FIND}; do
|
for I in ${FIND}; do
|
||||||
|
@ -948,7 +973,7 @@
|
||||||
LogText "Result: umask ${I} could be more strict"
|
LogText "Result: umask ${I} could be more strict"
|
||||||
WEAK_UMASK=1
|
WEAK_UMASK=1
|
||||||
AddHP 1 2
|
AddHP 1 2
|
||||||
else
|
else
|
||||||
LogText "Result: Found umask ${I}, which is fine"
|
LogText "Result: Found umask ${I}, which is fine"
|
||||||
AddHP 2 2
|
AddHP 2 2
|
||||||
fi
|
fi
|
||||||
|
@ -957,11 +982,15 @@
|
||||||
|
|
||||||
if [ ${FOUND_UMASK} -eq 1 ]; then
|
if [ ${FOUND_UMASK} -eq 1 ]; then
|
||||||
if [ ${WEAK_UMASK} -eq 0 ]; then
|
if [ ${WEAK_UMASK} -eq 0 ]; then
|
||||||
Display --indent 4 --text "- umask (/etc/profile)" --result "${STATUS_OK}" --color GREEN
|
Display --indent 4 --text "- umask (/etc/profile and /etc/profile.d)" --result "${STATUS_OK}" --color GREEN
|
||||||
AddHP 2 2
|
AddHP 2 2
|
||||||
else
|
elif [ ${GOOD_UMASK} -eq 1 -a ${WEAK_UMASK} -eq 1 ]; then
|
||||||
Display --indent 4 --text "- umask (/etc/profile)" --result "${STATUS_SUGGESTION}" --color YELLOW
|
Display --indent 4 --text "- umask (/etc/profile and /etc/profile.d)" --result "${STATUS_SUGGESTION}" --color YELLOW
|
||||||
ReportSuggestion ${TEST_NO} "Default umask in /etc/profile could be more strict like 027"
|
ReportSuggestion ${TEST_NO} "Some umasks found could be more strict (e.g. 027)"
|
||||||
|
AddHP 1 2
|
||||||
|
else
|
||||||
|
Display --indent 4 --text "- umask (/etc/profile and /etc/profile.d)" --result "${STATUS_SUGGESTION}" --color YELLOW
|
||||||
|
ReportSuggestion ${TEST_NO} "Default umask in /etc/profile or /etc/profile.d/custom.sh could be more strict (e.g. 027)"
|
||||||
AddHP 0 2
|
AddHP 0 2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue