MacOS Sierra Launch Daemon non avvierà il servizio VPN prima della richiesta di accesso

2

Sto cercando di ottenere un nuovo MacBook Pro con l'ultima versione di Sierra per connettersi alla mia VPN aziendale prima della schermata di accesso. La mia macchina è collegata via Ethernet, quindi non devo cercare di avviare il servizio Wi-Fi prima del login. Il mio script da riga di comando per connettersi alla VPN funziona bene nel terminale. So che il file deve essere inserito in / Library / LaunchDaemons / ma non sono sicuro di come accertarsi che venga elaborato prima di accedere alla schermata di accesso. Sono nuovo a scrivere file plist, quindi qualsiasi aiuto sarebbe apprezzato!

    <?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>Label</key>
<string>com.vpn_at_boot</string>
<key>ProgramArguments</key>
<array>
    <string>sh</string>
    <string>-c</string>
    <string>sudo /usr/local/Cellar/sstp-client/1.0.11_1/sbin/sstpc vpn-hidden.hidden.com --user <hidden> --password <hidden> --log-stderr --cert-warn require-mschap-v2 noauth refuse-eap noccp</string>
</array>
<key>RunAtLoad</key>
<true/>

    
posta Darren Mason 09.06.2017 - 01:09
fonte

2 risposte

1

Il tuo plist contiene errori importanti e piccoli inconvenienti. Il plist corretto - inclusi stderr e stdout - assomiglia a questo:

<?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>Label</key>
    <string>com.vpn_at_boot</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>-c</string>
        <string>/usr/local/sbin/sstpc vpn-redacted.redacted.com --user redacted --password redacted --log-stderr --cert-warn require-mschap-v2 noauth refuse-eap noccp</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/com.vpn_at_boot.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.vpn_at_boot.out</string>
</dict>
</plist>

Sostituisci redatto con il nome di dominio, l'utente e la password corretti nel tuo plist.

Il tuo plist manca tag importanti (ad esempio </dict> e </plist> ). Contiene cose non necessarie come sudo . Lo sstp-client può essere aggiornato in seguito, quindi usa il suo link in / usr / local / sbin. Raccomando anche di aggiungere / usr / local / sbin a / etc / paths.

Le autorizzazioni plist devono apparire come queste:

-rw-r--r--  1 root  wheel  - 682 Jun  9 13:38 /Library/LaunchDaemons/com.vpn_at_boot.plist

Dopo aver eseguito correttamente il daemon (cioè senza errori) puoi rimuovere le chiavi StandardErrorPath e StandardOutPath e le stringhe corrispondenti nella lista.

    
risposta data 09.06.2017 - 13:49
fonte
0

Una volta che il tuo plist è nel posto giusto, /Library/LaunchDaemons , dovrebbe essere OK.

LaunchAgents e LaunchDaemons non sono facili da controllare o testare. Posso suggerire di prendere una copia di Lingon che ha una buona interfaccia grafica per il lavoro, compresi i test.

    
risposta data 09.06.2017 - 02:04
fonte

Leggi altre domande sui tag