Sudo Explained

Ce veți crea

Odată cu apariția lui OS X 10.11 El Capitan, greutățile lui fără rădăcini Modul a devenit real. Acest nou mod este o caracteristică de securitate prin blocarea scrisului în orice zonă controlată de sistem a calculatorului dvs. Mac. Aceasta înseamnă că puteți edita și schimba lucrurile numai în directorul de domiciliu.

Pentru mulți dintre noi, aceasta reprezintă o problemă reală. iubesc homebrew, dar pune totul în / Usr / local director. Pe o instalare nouă căpitanul, acest director nu există și nu îl puteți crea în mod normal. 

Pe un sistem actualizat care are deja acel director, proprietarul devine rădăcină (și totul în el!). Acest lucru se sparge complet homebrew cu un operatie nepermisa mesaj de eroare. Cel mai rău dintre toate, dacă remediați, următoarea actualizare o întrerupe din nou. Sistemul meu a fost actualizat căpitanul de două ori și de fiecare dată când trebuia să o rezolv pentru a folosi corect homebrew.

Dacă nu sunteți familiarizat cu utilizarea liniei de comandă și a celor mai frecvent utilizate comenzi, vă rugăm să citiți Linia de comandă este cel mai bun prieten al tău tutorial primul. Acest tutorial are o treabă excelentă de a explica elementele de bază ale utilizării liniei de comandă. 

De asemenea, vă puteți referi la Linia de comandă pentru Web Design serii și cursuri Cum să fii un terminal și Tehnici avansate de linie de comandă

Dacă nu sunteți familiarizați cu homebrew, citiți tutorialul Homebrew demystificat: Managerul de pachete Ultimate pentru OS X.

Comandamentul Sudo

sudo comandă standuri Super Utilizator DO. Acesta vă permite să executați orice altă comandă terminal ca superutilizator sau mai frecvent denumit "utilizator rădăcină". Superuserul este șeful de sus al computerului. Superuserul poate face orice pe computer, atât pentru fixare cât și pentru distrugere. 

Utilizarea acestei comenzi poate fi foarte periculoasă.

Această comandă se află în / Usr / bin director. Mai întâi trebuie să vă asigurați că aveți acel director în calea voastră. Prin urmare, executați această comandă în terminal:

env | grep "PATH"

În linia care începe cu PATH =, verificați calea / Usr / bin în lista separată de colon. Dacă nu este acolo, adăugați aceasta la ~ / .Bashrc fișier pentru shell shell sau ~ / .Zshrc fișierul zsh pentru shell-ul zsh:

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

Acum, puteți folosi sudo comanda. Unii ar putea să se gândească că acest lucru este implicit, dar am descoperit că unele sisteme nu au această configurație. Am depanare probleme de calculator pentru mulți oameni și au văzut / Usr / bin director lipsește de la multe persoane de autentificare scripturi.

Pentru a utiliza sudo comanda, tastați linia de comandă pe care doriți să o efectuați după sudo cu un spațiu. 

Pentru exemplul de fixare homebrew, trebuie să modificați proprietatea asupra structurii de directoare la numele de conectare. Dacă nu sunteți sigur ce utilizează sistemul pentru numele de conectare, deschideți Terminal.app în directorul de acasă și tip:

ls -ld .

ls va comanda Listă conținutul unui director. Steagurile -ld spune ls pentru a afișa vizualizarea lungă cu atributele fișierului (l) și numai pentru directorul (d). . înseamnă directorul curent. Acest lucru ar trebui să producă o ieșire similară cu aceasta:

drwxr-xr-x 132 personalul raguay 884 Nov 6 14:11 .

raguay este numele de conectare din sistemul meu. Acesta va fi diferit pentru tine și este numele de care aveți nevoie pentru a schimba / Usr / local / proprietate.

Acum, pentru a fixa dreptul de proprietate asupra / Usr / local / director, trebuie să utilizați chown comanda. chown comandă standuri CHANGE OWNer și asta este ceea ce face. Pe sistemul meu, comanda este:

sudo chown -R raguay / usr / local

-R pavilionul spune chown pentru a schimba proprietatea recursiv. Aceasta înseamnă că fiecare fișier și directorul din / Usr / local li se va schimba proprietarul raguay. Trebuie să modificați numele de utilizator pentru a reflecta sistemul dvs..


Fixarea deținerii de / usr / local

Mai sus, puteți vedea mesajul de eroare când încercați să schimbați / Usr / local directorul de proprietate fără a utiliza sudo. Nu am folosit -R ca ar fi generat o eroare pentru fiecare fișier și director. Următoarea linie de comandă utilizează funcția sudo comanda. Comanda va cere parola și apoi va efectua acțiunea fără erori.

Periculosii

După cum am spus, acest lucru vă oferă multă putere asupra sistemului. Fiți foarte atent, puteți cauza ca sistemul să fie inutilizabil utilizând sudo comanda. De exemplu, linia de comandă pentru a șterge un fișier este rm pentru ReMove un fișier. Dacă tastați:

sudo rm -R /

Veți șterge totul de pe hard disk. Asta ar însemna că va trebui să reinstalați complet sistemul de operare, toate programele pe care le-ați avut și toate fișierele de date dintr-o copie de rezervă. Dacă nu aveți o copie de rezervă, ei bine, tocmai au dispărut.

Pana si chown comanda poate face lucrurile inutilizabile. Dacă schimbați proprietarul tuturor fișierelor din / Applicatons la un nume care nu există, atunci nu veți putea rula oricare dintre aplicațiile dvs. din acel director.

Prin urmare, fiți foarte atent cum utilizați sudo comanda.

Concluzie

Acum că acum cum să remediați problemele de proprietate pe Mac, aveți cunoștințele necesare pentru a remedia probleme similare pe care le-ați putea avea în viitor. Nu uitați să folosiți comanda foarte atent și verificați comanda pe care o introduceți înainte de a vă da parola. 

Odată executat, dezactivarea poate fi greu de aproape imposibilă fără reinstalarea completă a sistemului de operare.