lynis/include/helper_show

165 lines
5.8 KiB
Plaintext
Raw Normal View History

2016-04-07 16:24:38 +02:00
#!/bin/sh
#################################################################################
#
# Lynis
# ------------------
#
# Copyright 2007-2013, Michael Boelen
# Copyright 2013-2016, CISOfy
#
# Website : https://cisofy.com
# Blog : http://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.
#
######################################################################
#
# Helper program to share details
#
######################################################################
#
# How to use:
# ------------
# Run: lynis show <option>
#
######################################################################
2016-04-12 21:59:23 +02:00
COMMANDS="audit show update"
2016-04-26 13:40:21 +02:00
OPTIONS="--auditor\n--check-all (-c)\n--config\n--cronjob (--cron)\n--debug\n--developer\n--help (-h)\n--info\n--license-key --log-file\n--manpage_(--man)\n--no-colors --no-log\n--pentest\n--profile\n--plugins-dir\n--quiet (-q)\n--quick (-Q)\n--report-file\n--reverse-colors\n--tests\n--tests-category\n--upload\n--verbose\n--version (-V)\n--view-categories"
SHOW_ARGS="commands help license man options pidfile plugindir profiles release releasedate tests version"
2016-04-12 21:59:23 +02:00
SHOW_HELP="lynis show ${BROWN}commands${NORMAL} (all available commands)
lynis show ${BROWN}help${NORMAL} (detailed information about arguments)
lynis show ${BROWN}license${NORMAL} (license details)
lynis show ${BROWN}man${NORMAL} (show help)
lynis show ${BROWN}options${NORMAL} (available flags and options)
lynis show ${BROWN}pidfile${NORMAL} (active file to stored process ID)
lynis show ${BROWN}plugindir${NORMAL} (directory with plugins)
2016-04-12 21:59:23 +02:00
lynis show ${BROWN}profiles${NORMAL} (discovered profiles)
lynis show ${BROWN}release${NORMAL} (version)
lynis show ${BROWN}releasedate${NORMAL} (date of release)
lynis show ${BROWN}tests skipped${NORMAL} (which tests to skip according profile)
2016-04-12 21:59:23 +02:00
lynis show ${BROWN}version${NORMAL} (${PROGRAM_NAME} version)"
AUDIT_ARGS="( dockerfile | system )"
AUDIT_HELP="
audit ${CYAN}dockerfile${NORMAL}
Perform audit on a Docker build file
${GRAY}Usage:${NORMAL} lynis audit dockerfile ${BROWN}<file>${NORMAL}
audit ${CYAN}system${NORMAL}
Perform system audit
${DARKGRAY}Usage:${NORMAL} lynis audit system
"
2016-04-07 16:24:38 +02:00
UPDATE_ARGS="info release"
SHOW_TESTS_ARGS="skipped"
2016-04-07 16:24:38 +02:00
COMMANDS_AUDIT_SYSTEM_USAGE="Usage: lynis audit system"
COMMANDS_AUDIT_SYSTEM_FUNCTION="Function: performs a security audit of the system"
if [ $# -gt 0 ]; then
case $1 in
"commands")
if [ $# -eq 1 ]; then
2016-04-12 21:59:23 +02:00
echo "\n${WHITE}Commands:${NORMAL}"
for I in ${COMMANDS}; do
echo "lynis ${CYAN}${I}${NORMAL}"
done
echo ""
2016-04-07 16:24:38 +02:00
else
shift
if [ $# -eq 1 ]; then
2016-05-03 13:16:11 +02:00
case $1 in
"audit") echo "${AUDIT_HELP}" ;;
"show") echo "${SHOW_HELP}" ;;
*) echo "Unknown argument for 'commands'"
esac
else
shift
case $1 in
"dockerfile")
echo "Usage: lynis audit dockerfile <file>"
;;
"system")
echo "${COMMANDS_AUDIT_SYSTEM_USAGE}\n${COMMANDS_AUDIT_SYSTEM_FUNCTION}\n"
;;
*)
echo "Unknown argument for 'commands'"
;;
esac
2016-04-07 16:24:38 +02:00
fi
fi
;;
"help")
if [ $# -eq 1 ]; then
2016-04-12 21:59:23 +02:00
echo "${WHITE}Commands${NORMAL}:"
for I in ${COMMANDS}; do
echo "lynis ${CYAN}${I}${NORMAL}"
done
echo ""
echo "${WHITE}Options${NORMAL}:\n${BLUE}${OPTIONS}${NORMAL}"
2016-04-07 16:24:38 +02:00
else
shift
case $1 in
2016-04-12 21:59:23 +02:00
"audit") echo "${AUDIT_HELP}" ;;
2016-04-07 16:24:38 +02:00
"show") echo "${SHOW_ARGS}" ;;
"update") echo "${UPDATE_ARGS}" ;;
"?") echo "${SHOW_ARGS}" ;;
*) echo "Invalid argument provided for lynis show help" ;;
2016-04-07 16:24:38 +02:00
esac
fi
;;
"license") echo "${PROGRAM_LICENSE}" ;;
"man") echo "Use ./lynis --man or man lynis" ;;
"options") echo "${OPTIONS}" ;;
"pidfile") echo "${PIDFILE}" ;;
"profile" | "profiles") for I in ${PROFILES}; do echo ${I}; done ;;
"plugindir") echo "${PLUGINDIR}" ;;
"release" | "version") echo "${PROGRAM_VERSION}" ;;
"releasedate") echo "${PROGRAM_RELEASE_DATE}" ;;
"tests")
if [ $# -gt 0 ]; then
shift
case $1 in
"skipped") echo "${SKIP_TESTS}" ;;
2016-05-03 13:16:11 +02:00
*) echo "Invalid argument provided to lynis show tests\n\n"
echo "Suggestions:\n"
for I in ${SHOW_TESTS_ARGS}; do
echo "lynis show tests ${I}"
done
;;
esac
else
echo "Need more arguments"
fi
;;
2016-04-07 16:24:38 +02:00
"?") echo "${SHOW_ARGS}" ;;
*) echo "Unknown option" ;;
esac
else
2016-05-03 13:16:11 +02:00
echo "\n ${WHITE}Provide an additional argument${NORMAL}\n\n"
2016-04-07 16:24:38 +02:00
for I in ${SHOW_ARGS}; do
2016-04-12 21:59:23 +02:00
echo " lynis show ${BROWN}${I}${NORMAL}"
2016-04-07 16:24:38 +02:00
done
2016-05-03 13:16:11 +02:00
echo "\n"
2016-04-07 16:24:38 +02:00
fi
ExitClean
# More additions:
# - categories
# - workdir
2016-04-07 16:24:38 +02:00
# The End