Controlla i pacchetti per i certificati scaduti in Mac OS X

Molti utenti Mac scaricheranno file di pacchetto di aggiornamenti combo o altri software per installarli su più computer, evitando così l'aggiornamento con il Mac App Store. Questo è particolarmente comune con gli amministratori dei sistemi Mac, dove ha più senso scaricare un singolo aggiornamento o un singolo programma di installazione una volta e distribuirlo su una rete o magari installarlo manualmente tramite un'unità USB. Non c'è nulla di sbagliato in questo approccio, e in effetti è molto più efficiente per la gestione multi-Mac, ma una potenziale intasazione arriva quando un programma di installazione o di aggiornamento di un pacchetto ha un certificato scaduto, che impedisce al pacchetto di installarlo interamente, situazione che diventa evidente quando si ottiene un messaggio di errore "(il programma di installazione dell'applicazione è stato firmato con un certificato scaduto".

Per evitare questa situazione, puoi controllare tu stesso le firme dei pacchi per vedere se sono valide, se sono scadute, o anche se non hanno alcuna firma.

Come verificare lo stato della firma del pacchetto in Mac OS X con pkgutil

L'eccellente utility della riga di comando pkgutil può facilmente determinare lo stato di qualsiasi firma e certificato del pacchetto. È facile da usare, quindi avvia l'applicazione Terminale da / Applicazioni / Utility / e provalo tu stesso.

La sintassi di base da usare per controllare lo stato di una firma di pacchetto è come questa:

pkgutil --check-signature /Path/to/Example.pkg

Hit return e scoprirai se la firma è valida, se la firma è scaduta, o se non c'è nessuna firma.

Ad esempio, supponiamo di avere un pacchetto di installazione del software di aggiornamento Combo per Mac OS X, uno scenario comune per gli amministratori di sistema che aggiornano più Mac, è possibile controllare lo stato della firma di tali pacchetti in questo modo:

pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg
Package "OSXUpdateCombo10.10.2.pkg":
Status: signed by a certificate that has since expired

In questo caso, la firma per il pacchetto di aggiornamento è scaduta, il che significa che genererà un errore se si tenta di utilizzarlo.

Tuttavia, non tutti i programmi di installazione dei pacchetti hanno le firme e, mentre qualsiasi file di aggiornamento software di Apple lo farà, spesso i pacchetti da terze parti non lo fanno. Ad esempio, questo file di installazione del pacchetto di esempio non ha firma e deve essere trattato in modo appropriato (cioè se non si ha fiducia nell'origine, forse riconsiderare l'utilizzo).

pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg
Package "MysterySketchyInstaller-21.pkg":
Status: no signature

Se un file del pacchetto è dubbio, è possibile verificare la firma del codice ed estrarre il pacchetto senza installarlo con pkgutil per dare un'ulteriore ispezione, o se si preferisce utilizzare la GUI, quindi un'applicazione come Pacifist offre strumenti di gestione dei pacchetti simili in un interfaccia, anche se è ancora sul lato avanzato delle cose.

Come tutti i buoni strumenti della riga di comando, puoi persino alimentare i caratteri jolly di pkgutil per controllare facilmente più pacchetti contemporaneamente, in questo esempio controlleremo la firma di ogni file * .pkg contenuto in ~ / Downloads:

pkgutil --check-signature ~/Downloads/*.pkg
Package "irssi-0.8.17-0.pkg":
Status: no signature

Pacchetto "wget-4.8.22-0.pkg":
Stato: nessuna firma

Pacchetto "ComboUpdateOSXElCapitan.pkg":
Stato: firmato da un certificato che è scaduto

Pacchetto "InstallOSXSequoiaBeta.pkg":
Stato: valido

Pacchetto "HRFDeveloperTools.pkg":
Stato: valido

I caratteri jolly eseguiranno rapidamente il controllo dello stato dei certificati di molti file di pacchetti diversi, ma assicurati di specificare * .pkg per completare il processo senza fermarsi su un file che non è un pacchetto riconosciuto.