Sebbene sia possibile avviare un'applicazione grafica come utente root, non è consigliabile. Può funzionare, il più delle volte, ma evita di fare affidamento su questo comportamento.
Evita la radice
L'esecuzione di un'applicazione come root non è consigliata perché aumenta notevolmente il rischio di causare problemi con il tuo Mac. L'uso di root dovrebbe essere limitato al più piccolo pezzo di codice possibile con controlli rigorosi in atto.
Le applicazioni si stanno muovendo sempre più verso una progettazione frammentata per evitare di esporre troppa potenza al codice che non lo richiede.
- Un errore nel codice in esecuzione con permessi di root è un rischio per la sicurezza.
- Un errore nel codice senza permessi di root è molto meno capace di causare seri problemi.
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 da riga di comando
Se avete bisogno di lavorare con i file come utente root, utilizzare gli strumenti della riga di comando, come vim
, emacs
o nano
. Questi strumenti non si basano sul WindowServer e possono essere felicemente avviati come root all'interno di un'altra sessione utente:
sudo nano <path to edit>
Strumenti grafici
Se preferisci gli editor grafici, usa un editor che funzioni con il design di Mac OS X. BBEdit è un eccellente editor che gestirà correttamente la modifica dei file di proprietà di root .
Quando si modifica un file di proprietà di root con BBEdit, viene utilizzato un secondo processo per colmare il divario di autorizzazioni tra l'utente e il proprietario del file. Questo processo passa attraverso i percorsi sanzionati di Apple e garantisce quindi un'esperienza prevedibile, si spera in più versioni principali di Mac OS X.
Perché? Limiti di WindowServer e ambito di progettazione
Esistono sottili problemi tecnici con l'avvio di un'applicazione grafica in 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. WindowServer di Mac OS X non è mai stato progettato con questo obiettivo. Le sessioni utente sono estremamente difficili da superare anche come utenti 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 diverse sessioni grafiche su un Mac tramite Condivisione schermo. Questo miglioramento apparentemente semplice si basava su un'enorme quantità di sforzi dietro le quinte degli ingegneri di Apple.
Tuttavia, è improbabile che Apple fornisca un modo semplice per attraversare le applicazioni di avvio come utenti diversi all'interno di una singola sessione utente grafica. In che modo ciò gioverebbe ai loro clienti?
Se desideri approfondire ulteriormente questo argomento, cerca le domande che coinvolgono launchctl
ed eseguono applicazioni in altre sessioni utente attive.