[RISOLTO] Gestione dei criteri di Firefox/Thunderbird su macOS
Pubblicato: 28 ottobre 2024 - 18:12
Buongiorno,
Come richiesto sul canale Discord, ecco le mie osservazioni in seguito ai miei recenti test con Thunderbird/Firefox e le loro policy su MacOS.
Quando uno di questi programmi software viene aggiornato, tutto il contenuto della directory .app in /Applications viene eliminato dalla funzione install_app() che copia quindi la cartella .app della nuova versione, quindi vengono eliminati la cartella di distribuzione e il file policies.json (utilizziamo anche autoconfig/MCD per configurare LDAP o aggiungere identificatori su nuovi profili, e anche questo viene perso).
Ho quindi recuperato/rinominato/modificato i pacchetti Firefox/Thunderbird nel nostro repository per riapplicare l'audit di tutti questi pacchetti dopo l'installazione, il che ha l'effetto di riapplicare le modifiche direttamente, senza attendere il prossimo audit (la funzione audit() che chiama la funzione install() in caso di file mancante).
L'altra soluzione, se si utilizzano solo policy, è quella di utilizzare un file .plist (https://github.com/mozilla/policy-templ... master/mac / https://github.com/thunderbird/policy-t...entral/mac) che non verrà rimosso dall'aggiornamento.
Ciò comporta la gestione di due file separati o la conversione del file .json in .plist all'interno del pacchetto (eventualmente utilizzando il comando plutil). https://gist.github.com/sugarmo/5334805 (ma non l'ho testato).
Ciò significa anche dover eseguire il seguente comando (qui per Firefox, ma lo stesso vale per Thunderbird, vedere i link precedenti):
Un altro problema riscontrato, che stranamente si verifica solo su Thunderbird: durante una prima installazione e/o dopo un aggiornamento, al primo avvio del programma, il Mac controlla la firma dell'applicazione.
Se la firma non è valida, viene visualizzato un messaggio che indica che l'applicazione è danneggiata e si rifiuta di avviarla (richiede di forzare l'autorizzazione tramite Preferenze di Sistema/Privacy e Sicurezza, il che è un po' fastidioso, soprattutto con ogni aggiornamento). Tuttavia, la firma non è più valida dopo aver copiato un file (in genere il file policies.json) in /Applications/Thunderbird/Contents/Resources/
La firma può essere verificata utilizzando il seguente comando:
Se avvii il programma una volta e poi installi il pacchetto policy, non ci sono problemi (tuttavia, devi concedere a wapt-get i diritti di accesso completo al disco se vuoi eseguire l'azione dalla console wapt, e lo stesso vale per il terminale se vuoi eseguire l'installazione tramite la riga di comando), ma devi farlo ogni volta che aggiorni il pacchetto...
L'unica soluzione che ho trovato per evitare questo problema è stata quella di firmare nuovamente il pacchetto dopo aver aggiunto i file di policy, utilizzando il seguente comando:
Distribuire applicazioni su macOS non è affatto semplice, soprattutto se si vuole fare qualcosa di diverso dalla semplice installazione di un file dmg/pkg...
Se può far risparmiare ad altri ore sprecate su questo...
Come richiesto sul canale Discord, ecco le mie osservazioni in seguito ai miei recenti test con Thunderbird/Firefox e le loro policy su MacOS.
Quando uno di questi programmi software viene aggiornato, tutto il contenuto della directory .app in /Applications viene eliminato dalla funzione install_app() che copia quindi la cartella .app della nuova versione, quindi vengono eliminati la cartella di distribuzione e il file policies.json (utilizziamo anche autoconfig/MCD per configurare LDAP o aggiungere identificatori su nuovi profili, e anche questo viene perso).
Ho quindi recuperato/rinominato/modificato i pacchetti Firefox/Thunderbird nel nostro repository per riapplicare l'audit di tutti questi pacchetti dopo l'installazione, il che ha l'effetto di riapplicare le modifiche direttamente, senza attendere il prossimo audit (la funzione audit() che chiama la funzione install() in caso di file mancante).
L'altra soluzione, se si utilizzano solo policy, è quella di utilizzare un file .plist (https://github.com/mozilla/policy-templ... master/mac / https://github.com/thunderbird/policy-t...entral/mac) che non verrà rimosso dall'aggiornamento.
Ciò comporta la gestione di due file separati o la conversione del file .json in .plist all'interno del pacchetto (eventualmente utilizzando il comando plutil). https://gist.github.com/sugarmo/5334805 (ma non l'ho testato).
Ciò significa anche dover eseguire il seguente comando (qui per Firefox, ma lo stesso vale per Thunderbird, vedere i link precedenti):
Codice: Seleziona tutto
run("sudo defaults write /Library/Preferences/org.mozilla.firefox EnterprisePoliciesEnabled -bool TRUE")Un altro problema riscontrato, che stranamente si verifica solo su Thunderbird: durante una prima installazione e/o dopo un aggiornamento, al primo avvio del programma, il Mac controlla la firma dell'applicazione.
Se la firma non è valida, viene visualizzato un messaggio che indica che l'applicazione è danneggiata e si rifiuta di avviarla (richiede di forzare l'autorizzazione tramite Preferenze di Sistema/Privacy e Sicurezza, il che è un po' fastidioso, soprattutto con ogni aggiornamento). Tuttavia, la firma non è più valida dopo aver copiato un file (in genere il file policies.json) in /Applications/Thunderbird/Contents/Resources/
La firma può essere verificata utilizzando il seguente comando:
Codice: Seleziona tutto
codesign --verify --verbose /Applications/Thunderbird.appL'unica soluzione che ho trovato per evitare questo problema è stata quella di firmare nuovamente il pacchetto dopo aver aggiunto i file di policy, utilizzando il seguente comando:
Codice: Seleziona tutto
codesign -f -s - /Applications/Contents/MacOS/thunderbirdSe può far risparmiare ad altri ore sprecate su questo...