#!/bin/bash ########################################################################## # Shellscript : Check Ticket und Launch Daemon # Quelle : # Autor : Andreas Vogel, macenterprise gmbh # Copyright : macenterprise 2019 ########################################################################## # Erstellung XML read -d '' launchDaemons <<"EOF" Disabled KeepAlive Label de.ing.check_ticket ProgramArguments /Library/Application Support/JAMF/ING/check_ticket.sh RunAtLoad StartInterval 10 EOF # XML schreiben echo "$launchDaemons" > /Library/LaunchDaemons/de.ing.check_ticket.plist # Rechte setzen chmod 644 /Library/LaunchDaemons/de.ing.check_ticket.plist chown root:wheel /Library/LaunchDaemons/de.ing.check_ticket.plist # Erstellung startup script read -d '' startupscript<<"EOF" #!/bin/bash ########################################################################## # Shellscript : Prüft, ob das Ticket das eigene ist. # Autor : Andreas Vogel, macenterprise gmbh, 13.11.2019 ########################################################################## ########################### Description ################################## # Das Script wird über einen Daemon gestartet. # Das Script prüft, ob das hinterlegte Ticket dem User, gemäß des Benutzernames # gehört. Gehört das Ticket nicht dem Benutzer wird ein Event über Jamf ausgelöst. # Dabei wird der Befehl " sudo jamf -event TicketCheck ausgeführt. # Mit der Ausführung der Policy wird damit ein Logfile zu dem Gerät erstellt. # Damit wird die Möglichkeit eines Report geschaffen. # In Jamf kann eingesehen werden, wie oft diese Policy ausgeführt worden ist. Über den Log, kann # eingesehen werden, als welcher Benutzer der User versucht hatte sich ein Ticket zu beziehen. # Der User kann auch ein Ticket über das Terminal oder über den TicketViwer anfragen. #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="/Library/Application Support/JAMF/ING/.report" #Test Vorhandensein .REPORT if [[ -f "/Library/Application Support/JAMF/ING/.report" ]] then rm "/Library/Application Support/JAMF/ING/.report" fi #Test ob "fremdes" Ticket vorhanden #dann SHUTDOWN if [[ -n $TICKET ]] then touch "/Library/Application Support/JAMF/ING/.report" /usr/local/bin/jamf policy -event TicketReport #fdesetup remove -user $USER #shutdown -h now fi EOF # script schreiben echo "$startupscript" > /Library/Application\ Support/JAMF/ING/check_ticket.sh # Rechte setzen /bin/chmod u+x /Library/Application\ Support/JAMF/ING/check_ticket.sh # LaunchAgent laden launchctl unload /Library/LaunchDaemons/de.ing.check_ticket.plist launchctl load /Library/LaunchDaemons/de.ing.check_ticket.plist exit 0