#!/usr/bin/env bash{l_output=""l_output2=""l_mname="usb-storage"# set module name# Check how module will be loadedl_loadable="$(modprobe-n-v"$l_mname")"ifgrep-Pq--'^\h*install \/bin\/(true|false)'<<<"$l_loadable";thenl_output="$l_output\n - module: \"$l_mname\" is not loadable:\"$l_loadable\""elsel_output2="$l_output2\n - module: \"$l_mname\" is loadable:\"$l_loadable\""fi# Check is the module currently loadedif!lsmod|grep"$l_mname">/dev/null2>&1;thenl_output="$l_output\n - module: \"$l_mname\" is not loaded"elsel_output2="$l_output2\n - module: \"$l_mname\" is loaded"fi# Check if the module is deny listedifgrep-Pq--"^\h*blacklist\h+$l_mname\b"/etc/modprobe.d/*;thenl_output="$l_output\n - module: \"$l_mname\" is deny listed in:\"$(grep-Pl--"^\h*blacklist\h+$l_mname\b"/etc/modprobe.d/*)\""elsel_output2="$l_output2\n - module: \"$l_mname\" is not deny listed"fi# Report results. If no failures output in l_output2, we passif[-z"$l_output2"];thenecho-e"\n- Audit Result:\n ** PASS **\n$l_output\n"elseecho-e"\n- Audit Result:\n ** FAIL **\n - Reason(s) for audit failure:\n$l_output2\n"[-n"$l_output"]&&echo-e"\n- Correctly set:\n$l_output\n"fi}