mirror of
https://github.com/google/santa.git
synced 2026-01-14 08:47:57 -05:00
* review updates * fix test * review updates * log level cleanup Co-authored-by: Tom Burgin <bur@chromium.org> Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com>
89 lines
2.9 KiB
Bash
Executable File
89 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "${BINARIES}" || -z "${CONF}" ]]; then
|
|
if [[ -d "binaries" ]]; then
|
|
BINARIES="${PWD}/binaries"
|
|
CONF="${PWD}/conf"
|
|
elif [[ -d "../binaries" ]]; then
|
|
BINARIES="${PWD}/../binaries"
|
|
CONF="${PWD}/../conf"
|
|
else
|
|
echo "Can't find binaries, run install.sh from inside the conf directory" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Unload santad and scheduled sync job.
|
|
/bin/launchctl remove com.google.santad >/dev/null 2>&1
|
|
|
|
# Unload bundle service
|
|
/bin/launchctl remove com.google.santa.bundleservice >/dev/null 2>&1
|
|
|
|
# Unload metric service
|
|
/bin/launchctl remove com.google.santa.metricservice >/dev/null 2>&1
|
|
|
|
# Unload sync service
|
|
/bin/launchctl remove com.google.santa.syncservice >/dev/null 2>&1
|
|
|
|
# Unload kext.
|
|
/sbin/kextunload -b com.google.santa-driver >/dev/null 2>&1
|
|
|
|
# Determine if anyone is logged into the GUI
|
|
GUI_USER=$(/usr/bin/stat -f '%u' /dev/console)
|
|
|
|
# Unload GUI agent if someone is logged in.
|
|
[[ -n "${GUI_USER}" ]] && \
|
|
/bin/launchctl asuser "${GUI_USER}" /bin/launchctl remove com.google.santagui
|
|
[[ -n "$GUI_USER" ]] && \
|
|
/bin/launchctl asuser "${GUI_USER}" /bin/launchctl remove com.google.santa
|
|
|
|
# Cleanup cruft from old versions
|
|
/bin/launchctl remove com.google.santasync >/dev/null 2>&1
|
|
/bin/rm /Library/LaunchDaemons/com.google.santasync.plist >/dev/null 2>&1
|
|
/bin/rm /usr/libexec/santad >/dev/null 2>&1
|
|
/bin/rm /usr/sbin/santactl >/dev/null 2>&1
|
|
/bin/rm -rf /Applications/Santa.app 2>&1
|
|
/bin/rm -rf /Library/Extensions/santa-driver.kext 2>&1
|
|
/bin/rm /etc/asl/com.google.santa.asl.conf
|
|
|
|
# Copy new files.
|
|
/bin/mkdir -p /var/db/santa
|
|
|
|
/bin/cp -r ${BINARIES}/Santa.app /Applications
|
|
|
|
/bin/mkdir -p /usr/local/bin
|
|
/bin/ln -s /Applications/Santa.app/Contents/MacOS/santactl /usr/local/bin 2>/dev/null
|
|
|
|
/bin/cp ${CONF}/com.google.santa.plist /Library/LaunchAgents
|
|
/bin/cp ${CONF}/com.google.santa.bundleservice.plist /Library/LaunchDaemons
|
|
/bin/cp ${CONF}/com.google.santa.metricservice.plist /Library/LaunchDaemons
|
|
/bin/cp ${CONF}/com.google.santa.syncservice.plist /Library/LaunchDaemons
|
|
/bin/cp ${CONF}/com.google.santad.plist /Library/LaunchDaemons
|
|
/bin/cp ${CONF}/com.google.santa.newsyslog.conf /etc/newsyslog.d/
|
|
|
|
# Reload syslogd to pick up ASL configuration change.
|
|
/usr/bin/killall -HUP syslogd
|
|
|
|
# Load com.google.santa.daemon
|
|
/bin/launchctl load /Library/LaunchDaemons/com.google.santad.plist
|
|
|
|
# Load com.google.santa.bundleservice
|
|
/bin/launchctl load /Library/LaunchDaemons/com.google.santa.bundleservice.plist
|
|
|
|
# Load com.google.santa.metricservice
|
|
/bin/launchctl load /Library/LaunchDaemons/com.google.santa.metricservice.plist
|
|
|
|
# Load com.google.santa.syncservice
|
|
/bin/launchctl load /Library/LaunchDaemons/com.google.santa.syncservice.plist
|
|
|
|
# Load GUI agent if someone is logged in.
|
|
[[ -z "${GUI_USER}" ]] && exit 0
|
|
|
|
/bin/launchctl asuser "${GUI_USER}" /bin/launchctl load -w /Library/LaunchAgents/com.google.santa.plist
|
|
exit 0
|