Sudo ha spiegato

Cosa starai creando

Con l'avvento di OS X 10.11 El Capitan, le difficoltà di senza radici la modalità è diventata reale. Questa nuova modalità è una funzione di sicurezza bloccando la scrittura su qualsiasi area controllata dal sistema del tuo Mac. Ciò significa che puoi modificare e modificare le cose solo nella home directory.

Per molti di noi, questo pone un vero problema. io amo homebrew, ma mette tutto nel / Usr / local directory. In una nuova installazione di Il capitano, quella directory non esiste e non puoi normalmente crearla. 

Su un sistema aggiornato che ha già quella directory, il proprietario diventa root (e tutto ciò che contiene!). Questo si rompe completamente homebrew con un operazione non permessa messaggio di errore. Peggio ancora, se lo aggiusti, il prossimo aggiornamento lo rompe di nuovo. Il mio sistema è aggiornato Il capitano due volte e ogni volta ho dovuto risolverlo per usare correttamente homebrew.

Se non si ha familiarità con l'uso della riga di comando e dei comandi più comuni, leggere La riga di comando è il tuo migliore amico prima il tutorial. Questo tutorial fa un ottimo lavoro per spiegare le basi dell'utilizzo della riga di comando. 

Puoi anche fare riferimento a La riga di comando per il web design serie e i corsi Come essere un Terminal Pro e Tecniche avanzate della linea di comando

Se non hai familiarità con homebrew, per favore leggi il tutorial Homebrew Demystified: Ultimate Package Manager di OS X.

Il comando Sudo

Il sudo comando sta per Super User DO. Permette di eseguire qualsiasi altro comando terminale come superuser o più comunemente indicato come utente root. Il superutente è il principale capo del computer. Il superuser può fare qualsiasi cosa sul computer sia per riparare che per distruggere. 

L'uso di questo comando può essere molto pericoloso.

Questo comando è nel / Usr / bin directory. Prima devi assicurarti di avere quella directory sul tuo percorso. Pertanto, esegui questo comando nel terminale:

env | grep "PATH"

Nella linea che inizia con PATH =, controlla il percorso / Usr / bin nella lista separata dal colon. Se non è lì, aggiungi questo al ~ / .Bashrc file per la shell bash o il ~ / .Zshrc file zsh per la shell zsh:

export PATH = "$ PATH: / usr / bin";

Ora puoi usare il sudo comando. Alcuni potrebbero pensare che questo sia il default, ma ho trovato alcuni sistemi che mancano questa configurazione. Eseguo il debug dei problemi del computer per molte persone e ho visto il / Usr / bin directory mancante dagli script di accesso di molti popoli.

Per usare il sudo comando, si digita la riga di comando che si desidera eseguire dopo sudo con uno spazio. 

Per l'esempio del fissaggio homebrew, è necessario modificare la proprietà della struttura di directory sul nome di accesso. Se non si è sicuri del sistema utilizzato per il nome di accesso, aprire il Terminal.app nella directory home e digitare:

ls -ld .

Il ls comando lo farà Elenco il contenuto di una directory. Le bandiere -ld raccontare ls per mostrare la vista lunga con gli attributi del file (l) e solo la directory (d). Il . significa la directory corrente. Questo dovrebbe produrre un risultato simile a questo:

drwxr-xr-x 132 raguay staff 884 nov 6 14:11 .

Il raguay è il nome di accesso sul mio sistema. Sarà diverso per te ed è il nome a cui devi cambiare il / Usr / local / Proprietà.

Ora, per fissare la proprietà del / Usr / local / directory, è necessario utilizzare il chown comando. Il chown comando sta per Cambiare proprietario e questo è quello che fa. Sul mio sistema, il comando è:

sudo chown -R raguay / usr / local

Il -R la bandiera dice chown per modificare la proprietà in modo ricorsivo. Ciò significa, ogni file e directory in / Usr / local avrà il proprietario cambiato in raguay. Devi cambiare il nome utente per riflettere il tuo sistema.


Risolvere la proprietà di / usr / local

Sopra, è possibile visualizzare il messaggio di errore quando si tenta di modificare il / Usr / local proprietà della directory senza utilizzo sudo. Non ho usato il -R segnala come dovrebbe generare un errore per ogni file e directory. La prossima riga di comando usa il sudo comando. Il comando chiederà la password e quindi eseguirà l'azione senza errori.

I pericoli

Come ho già detto, questo ti dà un sacco di potere sul sistema. Stai molto attento, puoi far sì che il sistema sia inutilizzabile usando il sudo comando. Ad esempio, la riga di comando per eliminare un file è rm per ReMove un file. Se si digita:

sudo rm -R /

Cancellerai tutto sul disco rigido. Ciò significherebbe che dovresti reinstallare completamente il tuo sistema operativo, tutti i programmi che hai e tutti i tuoi file di dati da un backup. Se non hai un backup, beh, è ​​tutto finito.

Persino il chown il comando può rendere le cose inutilizzabili. Se cambi il proprietario di tutti i file nel / Applicatons directory a un nome che non esiste, quindi non sarà possibile eseguire alcuna delle applicazioni in quella directory.

Pertanto, stai molto attento a come usi il sudo comando.

Conclusione

Ora che ora risolvi i problemi di proprietà sul tuo Mac, hai le conoscenze per risolvere problemi simili che potresti avere in futuro. Ricordati di usare il comando con molta attenzione e controlla il comando che scrivi prima di dare la tua password. 

Una volta eseguito, annullarlo può essere quasi impossibile senza una completa reinstallazione del sistema operativo.