Newer
Older
# _____ _ _
# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
# | __| _| -_| -_| . | . | | . | . | | -_|
# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___|
#
# Generate an email alert if a USB driver is inserted or removed
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
if [ ! -f /tmp/.upgrading ]; then
UPTIME=$(awk -F '.' '{print $1}' < "/proc/uptime")
if [ "$UPTIME" -gt 240 ]; then
ADMIN_USER=$(grep 'Admin user' /root/${PROJECT_NAME}-completed.txt | awk -F ':' '{print $2}')
MY_EMAIL_ADDRESS=${ADMIN_USER}@$(cat /etc/hostname)
# Which devices have changed?
devices_changed=
if [ -f /tmp/.usb_devices ]; then
lsusb -v > /tmp/.curr_usb_devices
devices_changed=$(diff /tmp/.curr_usb_devices /tmp/.usb_devices)
rm /tmp/.curr_usb_devices
fi
msgstr=$(echo -e $"USB device connected on ${DEVPATH}\\n\\n${devices_changed}")
/bin/bash /usr/local/bin/${PROJECT_NAME}-notification -s $"${PROJECT_NAME} USB canary" -m "$msgstr"
echo "${ACTION}" > /tmp/usb-canary
echo "${MY_EMAIL_ADDRESS}" >> /tmp/usb-canary
date >> /tmp/usb-canary
fi
lsusb -v > /tmp/.usb_devices