171 lines
4.8 KiB
Bash
171 lines
4.8 KiB
Bash
#!/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"
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>Label</key>
|
|
<string>de.ing.check_ticket</string>
|
|
<key>Program</key>
|
|
<string>/usr/local/scripts/de.ing.check_ticket.sh</string>
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>StartInterval</key>
|
|
<integer>10</integer>
|
|
</dict>
|
|
</plist>
|
|
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"
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>Label</key>
|
|
<string>de.ing.verify_kerberos</string>
|
|
<key>Program</key>
|
|
<string>/Library/Application Support/JAMF/ING/de.ing.verify_kerberos.sh</string>
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>StartInterval</key>
|
|
<integer>10</integer>
|
|
</dict>
|
|
</plist>
|
|
|
|
|
|
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 |