#!/bin/bash
##########################################################################
# Script : Check Kerberos
# : and SHUTDOWN if more than one User has a Ticket
# Autor : Jobst Heinermann // Andreas Vogel
# Copyright : macenterprise gmbh
##########################################################################
# Erstellung verify script
read -d '' verify_script<<"EOS"
#!/bin/bash
##########################################################################
# Script : Prüft ob Flag für fremdes Ticket gesetzt wurde
# Autor : Jobst Heinermann // Andreas Vogel
# macenterprise gmbh
##########################################################################
#Variablen
USER=$(stat -f '%u %Su' /dev/console | cut -d ' ' -f 2)
#Prüfung .REPORT
REPORT="/private/tmp/.ticket"
if [[ -f $REPORT ]]
then
#Policy abfragen um Logeintrag zu schreiben
/usr/local/bin/jamf policy -event TicketReport
# User die Berechtigung für Filevault Entschlüsselung entziehen
# fdesetup remove -user $USER
# alle vorhandenen Kerberos Tickets werden verworfen
# kdestroy --all
# Flag für Reporting setzen
touch "/Library/Application Support/JAMF/ING/TICKET"
# reboot um o.a. Filevault Änderungen zu setzen
# shutdown -r now
fi
##########################################################################
# Script : Prüft ob LaunchAgents bei User vorhanden ist
# Autor : Jobst Heinermann // Andreas Vogel
# macenterprise gmbh
##########################################################################
#Variablen
#eingeloggter User
USER=$(stat -f '%u %Su' /dev/console | cut -d ' ' -f 2)
#Ordner
USER_LA="/Users/$USER/Library/LaunchAgents"
if [[ ! -d "$USER_LA" ]]
then
mkdir -p "$USER_LA"
fi
SH_SYS="/usr/local/scripts/"
if [[ ! -d $SH_SYS ]]
then
mkdir -p $SH_SYS
fi
SH_JAMF="Library/Application\ Support/JAMF/ING/"
if [[ ! -d $SH_JAMF ]]
then
mkdir -p $SH_JAMF
fi
# Erstellung XML
read -d '' launchAgent <<"EOU"
KeepAlive
Label
de.ing.check_ticket
Program
/usr/local/scripts/de.ing.check_ticket.sh
RunAtLoad
StartInterval
10
EOU
#LaunchAgent
LAUNCH_A="/Users/$USER/Library/LaunchAgents/de.ing.check_ticket.plist"
if [[ ! -f $LAUNCH_A ]]
then
# XML schreiben
echo "$launchAgent" > /Users/$USER/Library/LaunchAgents/de.ing.check_ticket.plist
# Rechte setzen
chown $USER:1979520509 /Users/$USER/Library/LaunchAgents/de.ing.check_ticket.plist
chmod 644 /Users/$USER/Library/LaunchAgents/de.ing.check_ticket.plist
fi
EOS
# script schreiben
echo "$verify_script" > /Library/Application\ Support/JAMF/ING/de.ing.verify_kerberos.sh
# Rechte setzen
chmod u+x /Library/Application\ Support/JAMF/ING/de.ing.verify_kerberos.sh
# Erstellung XML
read -d '' launchDaemon <<"EOD"
KeepAlive
Label
de.ing.verify_kerberos
Program
/Library/Application Support/JAMF/ING/de.ing.verify_kerberos.sh
RunAtLoad
StartInterval
10
EOD
# LaunchDaemon ggf. stoppen
launchctl unload -wF /Library/LaunchDaemons/de.ing.verify_kerberos.plist
# XML schreiben
echo "$launchDaemon" > /Library/LaunchDaemons/de.ing.verify_kerberos.plist
# Rechte setzen
chmod 644 /Library/LaunchDaemons/de.ing.verify_kerberos.plist
chown root:wheel /Library/LaunchDaemons/de.ing.verify_kerberos.plist
# LaunchDaemon laden
launchctl load -wF /Library/LaunchDaemons/de.ing.verify_kerberos.plist
# Erstellung check script
read -d '' check_script<<"EOC"
#!/bin/bash
##########################################################################
# Shellscript : Prüft im Userkontext auf fremde Kerberos Tickets
# Autor : Jobst Heinermann // Andreas Vogel
# macenterprise gmbh
##########################################################################
#Variablen
#eingeloggter User
USER=$(stat -f '%u %Su' /dev/console | cut -d ' ' -f 2)
#Kerberos REALM
REALM="DIBA.CORP.INT"
#Prüfung auf fremdes Ticket
TICKET=$(klist -l | grep $REALM | awk -F@ {'print $1'} | tr -d '* ' | awk -F$USER {'print $1'} | awk 'NF')
#Prüfung .REPORT
REPORT="/private/tmp/.ticket"
#Test
if [[ -n $TICKET ]]
then
echo "$TICKET" > "$REPORT"
fi
exit 0
EOC
# script schreiben
echo "$check_script" > /usr/local/scripts/de.ing.check_ticket.sh
# Rechte setzen
chmod a+x /usr/local/scripts/de.ing.check_ticket.sh
exit 0