OS X Modifica un file usando TextEdit come utente root o superutente

La modifica di alcuni file su un sistema OS X richiede i privilegi di superutente o di root. In genere, ciò viene eseguito utilizzando sudo (che consente agli utenti autorizzati di assumere poteri di superutente, mantello e collant opzionali) e vi. Per chi non lo sapesse, vi può causare disagio intestinale e perdita di capelli. Un'alternativa è l'uso di TextEdit, l'applicazione di editor di testo grafico, ma in circostanze normali, è possibile aprire un file di sistema come host ma non salvarlo. Seguendo i passaggi di questa ricetta, puoi modificare un file di sistema usando TextEdit e rimandare l'apprendimento di vi per un altro giorno.


L'applicazione della riga di comando sudo consente a un utente di eseguire un'altra applicazione come se fosse un altro utente. Più comunemente (e di default) l'altro utente è root, il superutente del sistema che può fare qualsiasi cosa su qualsiasi file sulla scatola. In questo caso vogliamo avviare l'applicazione TextEdit.

Se non hai mai cercato in un'applicazione in OS X, è interessante dare un'occhiata. Quando guardi la cartella / Applicazioni in una finestra del Finder, vedrai le applicazioni elencate per nome come TextEdit. Se si elencano i file dalla riga di comando (ls -l / Applicazioni) sono in realtà directory, non semplicemente file, e hanno un'estensione .app come TextEdit.app. Puoi cambiare directory in una di queste directory e guardarti attorno. Se guardi in pochi, vedrai che ci sono alcune organizzazioni standard in loro e questo dovrebbe farti sentire un po 'più caldo e possibilmente più confuso riguardo a questa situazione. Questa struttura di directory consente alle applicazioni di contenere numerosi file e risorse di supporto all'interno di essi. Di interesse per noi è la posizione del file eseguibile effettivo all'interno della directory app. Nel caso di TextEdit, il percorso di questo eseguibile è /Applications/TextEdit.app/Contents/MacOS/TextEdit

Sulla base di queste informazioni, l'esecuzione di TextEdit con sudo per modificare il file / etc / hosts diventa un'operazione semplice (se una linea di comando piuttosto lunga, mi dispiace):


sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit / etc / hosts

In molti sistemi questo terminale può funzionare meglio:

sudo open -t / etc / hosts

Quando si esegue questo comando da una riga di comando (in una finestra di Terminale), verrà richiesta una password. La password corretta è la tua (la password dell'utente che ha effettuato l'accesso a OS X, anche la password che fornisci quando fai gli aggiornamenti di sistema e così via), non la password dell'utente root (che comunque non esiste per impostazione predefinita).

Una volta inserita la tua password, si aprirà una finestra di TextEdit e apparirà il contenuto del file che stai modificando. Modifica il contenuto del tuo cuore e salva normalmente quando hai finito. Tieni presente che la maggior parte dei file di sistema è protetta dalla scrittura per una buona ragione (ad esempio se si commette un errore nel modificarli, possono accadere cose brutte), quindi modificarli a proprio rischio.

Aggiornare:

Le funzioni di versioning di OS X Lion impediranno il corretto funzionamento di questo tutorial. Anche se si esegue come superutente, il file all'interno di textedit verrà bloccato. Da quando Lion è uscito, sono tornato al vecchio standby di usare nano per modificare.

sudo nano / etc / hosts

Certo che nano ha quella sensazione di terminale retrò, ma è un metodo abbastanza semplice per rendere semplici le modifiche ai file host.