晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/proc/thread-self/root/opt/cpguard/3rdparty/lynis/include/
Upload File :
Current File : //proc/thread-self/root/opt/cpguard/3rdparty/lynis/include/tests_memory_processes
#!/bin/sh

#################################################################################
#
#   Lynis
# ------------------
#
# Copyright (c) Michael Boelen, CISOfy, and many contributors.
#
# Website  : https://cisofy.com
# Blog     : https://linux-audit.com/
# GitHub   : https://github.com/CISOfy/lynis
#
# Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
# welcome to redistribute it under the terms of the GNU General Public License.
# See LICENSE file for usage of this software.
#
#################################################################################
#
# Memory and processes
#
#################################################################################
#
    InsertSection "${SECTION_MEMORY_AND_PROCESSES}"
#
#################################################################################
#
    # Test        : PROC-3602
    # Description : Query /proc/meminfo
    Register --test-no PROC-3602 --os Linux --weight L --network NO --category security --description "Checking /proc/meminfo for memory details"
    if [ ${SKIPTEST} -eq 0 ]; then
        if [ -f ${ROOTDIR}proc/meminfo ]; then
            LogText "Result: found ${ROOTDIR}proc/meminfo"
            Display --indent 2 --text "- Checking ${ROOTDIR}proc/meminfo" --result "${STATUS_FOUND}" --color GREEN
            FIND=$(${AWKBINARY} '/^MemTotal/ { print $2, $3 }' ${ROOTDIR}proc/meminfo)
            MEMORY_SIZE=$(echo ${FIND} | ${AWKBINARY} '{ print $1 }')
            MEMORY_UNITS=$(echo ${FIND} | ${AWKBINARY} '{ print $2 }')
            LogText "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
            Report "memory_size=${MEMORY_SIZE}"
            Report "memory_units=${MEMORY_UNITS}"
        else
            LogText "Result: ${ROOTDIR}proc/meminfo file not found on this system"
        fi
    fi
#
#################################################################################
#
    # Test        : PROC-3604
    # Description : Query /proc/meminfo
    # Notes       : TODO - prtconf replacement
    Register --test-no PROC-3604 --os Solaris --weight L --network NO --category security --description "Query prtconf for memory details"
    if [ ${SKIPTEST} -eq 0 ]; then
        LogText "Test: Searching /usr/sbin/prtconf"
        if [ -x /usr/sbin/prtconf ]; then
            Display --indent 2 --text "- Querying prtconf for installed memory" --result "${STATUS_DONE}" --color GREEN
            MEMORY_SIZE=$(/usr/sbin/prtconf | ${GREPBINARY} "^Memory size:" | ${CUTBINARY} -d ' ' -f3)
            MEMORY_UNITS=$(/usr/sbin/prtconf | ${GREPBINARY} "^Memory size:" | ${CUTBINARY} -d ' ' -f4)
            LogText "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
            Report "memory_size=${MEMORY_SIZE}"
            Report "memory_units=${MEMORY_UNITS}"
        else
            Display --indent 2 --text "- Querying prtconf for installed memory" --result "${STATUS_SKIPPED}" --color WHITE
            LogText "Result: /usr/sbin/prtconf not found"
        fi
    fi
#
#################################################################################
#
    # Test        : PROC-3612
    # Description : Searching for dead and zombie processes
    # Notes       : Don't perform test on Solaris
    if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
    Register --test-no PROC-3612 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check dead or zombie processes"
    if [ ${SKIPTEST} -eq 0 ]; then
        if [ "${OS}" = "AIX" ]; then
            FIND=$(${PSBINARY} -Ae -o pid,stat,comm | ${AWKBINARY} '{ if ($2 ~ /Z|X/) print $1 }' | ${XARGSBINARY})
        else
            FIND=$(${PSBINARY} x -o pid,stat,comm | ${AWKBINARY} '{ if ($2 ~ /Z|X/) print $1 }' | ${XARGSBINARY})
        fi
        if [ -z "${FIND}" ]; then
            LogText "Result: no zombie processes found"
            Display --indent 2 --text "- Searching for dead/zombie processes" --result "${STATUS_NOT_FOUND}" --color GREEN
        else
            LogText "Result: found one or more dead or zombie processes"
            LogText "Output: PIDs ${FIND}"
            Display --indent 2 --text "- Searching for dead/zombie processes" --result "${STATUS_FOUND}" --color RED
            ReportSuggestion "${TEST_NO}" "Check the output of ps for dead or zombie processes"
        fi
    fi
#
#################################################################################
#
    # Test        : PROC-3614
    # Description : Searching for heavy IO based waiting processes
    # Notes       : Don't perform test on Solaris
    if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
    Register --test-no PROC-3614 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check heavy IO waiting based processes"
    if [ ${SKIPTEST} -eq 0 ]; then
        if [ "${OS}" = "AIX" ]; then
            FIND=$(${PSBINARY} -Ae -o pid,stat,comm | ${AWKBINARY} '{ if ($2=="D") print $1 }' | ${XARGSBINARY})
        else
            FIND=$(${PSBINARY} x -o pid,stat,comm | ${AWKBINARY} '{ if ($2=="D") print $1 }' | ${XARGSBINARY})
        fi
        if [ -z "${FIND}" ]; then
            LogText "Result: No processes were waiting for IO requests to be handled first"
            Display --indent 2 --text "- Searching for IO waiting processes" --result "${STATUS_NOT_FOUND}" --color GREEN
        else
            LogText "Result: found one or more processes which were waiting to get IO requests handled first"
            LogText "More info: processes which show up with the status flag 'D' are often stuck, until a disk IO event finished. This can happen for example with network storage, where the connection or protocol settings are not logtext well configured."
            LogText "Output: PIDs ${FIND}"
            Display --indent 2 --text "- Searching for IO waiting processes" --result "${STATUS_FOUND}" --color RED
            ReportSuggestion "${TEST_NO}" "Check process listing for processes waiting for IO requests"
        fi
    fi
#
#################################################################################
#
    # Test        : PROC-3802
    # Description : Check presence of prelink tooling
    Register --test-no PROC-3802 --package-manager-required --os Linux --weight L --network NO --category security --description "Check presence of prelink tooling"
    if [ ${SKIPTEST} -eq 0 ]; then
        if PackageIsInstalled "prelink"; then
            LogText "Result: prelink packages is installed"
            # TODO
            # - Add item to website with rationale
            #ReportSuggestion "${TEST_NO}" "Disable and remove prelinking of binaries"
            AddHP 1 3
            Display --indent 2 --text "- Search prelink tooling" --result "${STATUS_FOUND}" --color YELLOW
        else
            Display --indent 2 --text "- Search prelink tooling" --result "${STATUS_NOT_FOUND}" --color GREEN
            LogText "Result: prelink package is NOT installed"
            AddHP 3 3
        fi
    fi
#
#################################################################################
#


WaitForKeyPress

#
#================================================================================
# Lynis - Security Auditing and System Hardening for Linux and UNIX - https://cisofy.com