L’avvio di scripts al boot su OSX viene gestito da script .plist da creare nella cartella si sistema /Library/LaunchDaemons/.
Segue una breve guida per avviare automaticamente uno script che imposta una regola nel firewall (vedi precedente articolo).
Diventiamo root ed accediamo alla cartella LaunchDaemons. Digitiamo:
sudo sue poi inseriamo la password; digitiamo poi:
cd /Library/LaunchDaemons/la cartella potrebbe già contenere qualche file plist.
Creiamo il nostro file che chiameremo com.apple.ipfw.plist. Io uso il fidato vim, ma potete utilizzare l’editor che preferite:
vi com.apple.ipfw.plistscriviamo all’interno del file quanto segue:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.ipfw</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/ipfw</string>
<string>add</string>
<string>10</string>
<string>fwd</string>
<string>localhost,8080</string>
<string>tcp</string>
<string>from</string>
<string>me</string>
<string>to</string>
<string>me</string>
<string>80</string>
</array>
<key>RunAtLoad</key>
<true></true>
<key>ServiceDescription</key>
<string>IP filter rules</string>
<key>StandardErrorPath</key>
<string>/var/log/ipfw.log</string>
<key>StandardOutPath</key>
<string>/var/log/ipfw.log</string>
<key>UserName</key>
<string>root</string>
<key>GroupName</key>
<string>wheel</string>
</dict>
</plist>Per testare il funzionamento dello script, basterà digitare:
launchctl start com.apple.ipfwdove com.apple.ipfw è il valore che avete indicato nella “Key” Label del file .plist.
Per verificare che il servizio sia stato lanciato, basterà digitare:
launchctl list |grep com.apple.ipfwe per controllare che la regola sia stata effettivamente aggiunta nel firewall, basterà digitare:
ipfw listNota: per la creazione dei file per launchd, consiglio anche di provare il client grafico Lingon.
enjoy