108 lines
3.2 KiB
Bash
108 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
##########################################################################
|
|
# Shellscript : Check Ticket und Launch Daemon
|
|
# Quelle :
|
|
# Autor : Andreas Vogel, macenterprise gmbh
|
|
# Copyright : macenterprise 2019
|
|
##########################################################################
|
|
|
|
|
|
# Erstellung XML
|
|
read -d '' launchDaemons <<"EOF"
|
|
<?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>Disabled</key>
|
|
<false/>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>Label</key>
|
|
<string>de.ing.check_ticket</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>/Library/Application Support/JAMF/ING/check_ticket.sh</string>
|
|
</array>
|
|
<key>RunAtLoad</key>
|
|
<true/>
|
|
<key>StartInterval</key>
|
|
<integer>10</integer>
|
|
</dict>
|
|
</plist>
|
|
|
|
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 |