Per gli amanti del Terminale si tratta di ordinaria amministrazione ma ai meno avvezzi alle profondità del sistema, come fare per lanciare programmi da interfaccia grafica nelle situazioni (rare) in cui siano richiesti privilegi root?
Prima di addentrarci nella guida, un chiarimento per il “diavoletto” in apertura: affrontiamo un argomento che va a scavare nel cuore del sistema, permettendoci di ottenere i privilegi necessari all’esecuzione di quelle operazioni a cui Apple, a buon ragione, preferisce mantenerci a distanza perché con i privilegi da root, è possibile, in teoria e pratica, far imboccare la via del non ritorno ad ogni sistema operativo… la mascotte? E’ l’ornitorinco Hexley, il compagno di sviluppo di tutti coloro che hanno lavorato a Darwin, alla base, come sappiamo dei nostri sistemi operativi Mac OS X.
Con il rischio di scadere nel logorroico, ribadiamo come ottenuti tali privilegi il Mac sia completamente vulnerabile alle operazioni richieste e se in locale l’argomento potrebbe avere rilevanza arginabile, con un Mac in rete, o connesso ad Internet, i rischi aumentano in modo esponenziale. Purtroppo tendiamo ad seguire guide simili con molta leggerezza per questo, ogni tanto, è bene spendere qualche paragrafo per ricordarci come il Web non sia la terra del nettare e dell’ambrosia e le truffe, l’effrazione, il furto informatico, sono realtà giornaliere.
Torniamo a parlare di cose “interessanti”… con questa guida è possibile eseguire le applicazioni che sono eseguite utilizzando l’interfaccia grafica di Mac OS X (o OS X) utilizzando i privilegi da root, “un utente speciale che ha privilegi di lettura e scrittura per tutte le aree del file system. L’utente root dovrebbe essere utilizzato solo per specifiche attività di amministrazione o di monitoraggio.”
La sintassi da eseguire all’interno di una finestra Terminale per eseguire le operazioni con privilegi root è la seguente:
L’arcobaleno di colori nella linea di comando precedente può essere così chiarito:
sudo: è il comando da impartire per chiedere l’esecuzione come utente root;
/Path/To/Application/: indica il percorso in cui è contenuta l’applicazione da lanciare, in genere Applicazioni (da console invece è /Applications);
ApplicationName.app: il nome dell’applicazione, o propriamente il suo package;
/Path/To/: il percorso in cui è contenuto l’eseguibile vero e proprio nel package, anche qui, in genere, il path predefinito è Contents/MacOS
Executable: l’eseguibile.
Per i sopravvissuti, finalmente, un esempio pratico, scegliendo come cavia TexEdit.
Da console, quindi, digitiamo il necessario per la sua esecuzione come utenti root:
Dopo aver confermato, si aprirà, in apparenza “come al solito”, TextEdit ma con due note a margine: la console bloccata, in attesa che venga completato il processo, e l’esecuzione di TextEdit come applicazione da root.
Chiariamo entrambi: per evitare che dopo aver invocato il comando la console si blocchi in attesa che venga chiuso l’applicativo, dobbiamo aggiungere un’opzione alla riga di comando ed in tal modo il processo sarà eseguito in background:
Per l’esecuzione, quindi, aggiungiamo l’opzione -b:
Come verifichiamo, invece, che TextEdit sia in esecuzione con privilegi da root?
Due le strade: da Terminale, con il comando ps au|grep TextEdit
Da interfaccia grafica, con l’utility Monitoraggio Attività:
Alla guida originaria di osXdaily aggiungiamo quanto attinto dai commenti e come fare per uscire da tale modalità senza chiudere la finestra del terminale: partiamo dall’ultima, ovvero, da root come tornare al livello di privilegi precedente? Digitiamo il comando exit…
Pratica archiviata… interessante, la nota in un commento per eseguire direttamente, da Terminale, l’applicativo interessato senza specificare il percorso all’interno del package: il comando, applicato sempre alla nostra “cavia” prevede l’uso dell’opzione open, ovvero: sudo open /Applications/TextEdit.app
[ via osXdaily ]