macOS è dotato di un meccanismo di protezione dei file di sistema decisamente aggressivo: si chiama System Integrity Protection (SIP), ed impedisce all'utente di salvare le modifiche a com.apple.Boot.plist ed altri file memorizzati nei percorsi "delicati", fra i quali /Library/Preferences/SystemConfiguration/. Vediamo allora come disabilitare temporaneamente System Integrity Protection (SIP)

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted

nota: questa procedura è stata testata con macOS High Sierra, ma dovrebbe funzionare con tutte le versioni.

System Integrity Protection (SIP) impedisce la modifica dei file di sistema

Disabilitare System Integrity Protection di macOS non è un'operazione da svolgersi nella quotidianità. Anzi! è una scelta che può impattare negativamente sulla sicurezza, poiché SIP è una funzionalità pensata prima di tutto per impedire la modifica non-autorizzata dei file di sistema da parte dei malware.

» Leggi anche: Come ripulire dai malware un sistema operativo Mac OS X con Malwarebytes Anti-Malware

Ciò nonostante, SIP preclude anche all'utente di apportare modifiche al sistema operativo. Possiamo verificarlo, ad esempio, aprendo con i privilegi massimi un file di configurazione:

sudo pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

Aggiungiamo uno spazio alla fine, proviamo a salvare con la combinazione da tastiera Ctrl+O seguita da Invio e riceveremo l'errore Error writing com.apple.Boot.plist Operation not permitted

» Leggi anche: Guida: modificare i file di configurazione di Linux Ubuntu/CentOS da terminale è facile con "nano" (alternativa a "vi")

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted

Nell'architettura "standard" dei sistemi basati su Unix (come Linux e macOS stesso), un errore di privilegi insufficienti come questo non dovrebbe presentarsi, dato che stiamo operando come utente root. Il responsabile del divieto, appunto, è proprio SIP.

Disattivare System Integrity Protection (SIP) su macOS

Per disattivare temporaneamente System Integrity Protection su macOS dobbiamo innanzitutto entrare in modalità recovery seguendo la procedura presentata in questo articolo:

» Leggi: macOS in VM VirtualBox: come entrare in modalità macOS Recovery con High Sierra

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted - VirtualBox_macOS_12_10_2017_13_48_21

Una volta "dentro", apriamo il Terminale cliccando la voce di menu Utility -> Terminale ed impartiamo questo semplice comando:

csrutil disable

macOS conferma la corretta riuscita dell'operazione mostrando il testo Successfully disabled System Integrity Protection

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted

Procediamo ora a riavviare in modalità "normale" cliccando il menu Mela nell'angolo in alto a sinistra per poi selezionare Riavvia. Attenzione! Per i motivi esposti di seguito, è proprio necessario scegliere Riavvia e non Spegni

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted

Una volta tornati al desktop regolare di macOS, possiamo svolgere nuovamente la prova indicata in apertura. Scopriremo così che, a patto di agire con i privilegi di root, potremo modificare tutto quello che ci aggrada.

Verificare lo stato di SIP

In qualsiasi momento possiamo verificare lo stato attuale di SIP, anche dall'ambiente "standard" di macOS. Basta aprire il Terminale ed impartire

csrutil status

La risposta System Integrity Protection status: disabled conferma che SIP è attualmente disabilitato

Guida: come disabilitare System Integrity Protection (SIP) macOS High Sierra - Error writing com.apple.Boot.plist Operation not permitted

System Integrity Protection si ri-abilita allo spegnimento

SIP rimarrà disabilitato fino al prossimo arresto/spegnimento e successivo boot del sistema. In quel momento, verrà riattivato automaticamente. I file modificati mentre era disabilitato, comunque, conserveranno le variazioni apportate.

Per essere assolutamente chiari: dopo aver disattivato System Integrity Protection possiamo riavviare (reboot) il sistema a piacimento, ma uno spegnimento (shutdown) sarà sufficiente a ri-attivarlo. Non sono a conoscenza di un metodo per rendere la disabilitazione veramente "permanente": il fatto che sopravviva fra i riavvii e che le modifiche apportate mentre era "off" vengano conservate è comunque più che sufficiente per svolgere pressoché qualsiasi operazione.