Sebbene sia possibile avviare un'applicazione grafica come utente root, non è consigliabile. Può funzionare, la maggior parte delle volte, ma evita di fare affidamento su questo comportamento.
Evita root
L'esecuzione di un'applicazione come root non è consigliata perché aumenta notevolmente il rischio di causare problemi con il Mac. L'uso di root dovrebbe essere limitato al più piccolo pezzo di codice possibile con controlli rigorosi sul posto.
Le applicazioni si stanno spostando sempre più verso un design frammentato per evitare di esporre troppa potenza al codice che non lo richiede.
- Un errore nel codice in esecuzione con i permessi di root è un rischio per la sicurezza.
- Un errore nel codice senza i permessi di root è molto meno in grado di causare problemi seri.
Ci sono casi limite, ma questi sono sempre più rari. L'introduzione di sandboxing e XPC fanno parte degli sforzi di Apple per ridurre la necessità di fornire un'autorità eccessiva ai processi in esecuzione su OS X.
Strumenti della riga di comando
Se hai bisogno di lavorare con i file come utente root, usa strumenti a linea di comando come vim
, emacs
o nano
. Questi strumenti non si basano sul WindowServer e possono essere lanciati felicemente come root all'interno di un'altra sessione utente:
sudo nano <path to edit>
Strumenti grafici
Se preferisci gli editor grafici, utilizza un editor che funzioni con il design di Mac OS X. BBEdit è un editor eccellente che gestirà correttamente la modifica dei file di proprietà root .
Quando modifichi un file di proprietà principale con BBEdit, viene utilizzato un secondo processo per colmare il divario di permessi tra te e il proprietario del file. Questo processo passa attraverso i percorsi approvati da Apple e garantisce quindi un'esperienza prevedibile, si spera tra le diverse versioni principali di Mac OS X.
Perché? Limiti di WindowServer e ambito di progettazione
Ci sono sottili problemi tecnici con l'avvio di un'applicazione grafica all'interno di un'altra sessione utente.
I problemi tecnici sottostanti derivano da un utente che desidera avviare un processo grafico all'interno della sessione di un altro utente. Il WindowServer di Mac OS X non è mai stato progettato con questo obiettivo. Le sessioni utente sono estremamente difficili da scappare anche da utente root, il tutto per motivi di sicurezza desiderabili.
Apple ha notevolmente migliorato il design di WindowServer nelle ultime versioni principali di Mac OS X. Ora è possibile avere più utenti connessi a sessioni grafiche diverse su un Mac attraverso la condivisione dello schermo. Questo miglioramento apparentemente semplice si è basato su un enorme sforzo dietro le quinte degli ingegneri Apple.
Tuttavia, è improbabile che Apple fornisca un modo semplice per attraversare le applicazioni di lancio come utenti diversi all'interno di una singola sessione utente grafica. Come andrebbe a vantaggio dei loro clienti?
Se vuoi approfondire questo argomento, cerca le domande che coinvolgono launchctl
e le applicazioni in esecuzione in altre sessioni utente attive.