Sudo förklaras

Vad du ska skapa

Med tillkomsten av OS X 10.11 El Capitan, svårigheterna i rotlös läge blev verkligt. Det här nya läget är en säkerhetsfunktion genom att blockera skrivningen till alla systemstyrda områden på din Mac. Det betyder att du bara kan redigera och ändra saker i hemkatalogen.

För många av oss är det ett verkligt problem. jag älskar homebrew, men det sätter allt i / Usr / local katalogen. På en ny installation av El Capitan, den katalogen existerar inte och du kan inte normalt skapa den. 

På ett uppgraderat system som redan har den katalogen blir ägaren rot (och allt i det!). Detta bryter helt homebrew med en Åtgärden är inte tillåten felmeddelande. Värst av allt, om du fixar det, bryter den nästa uppdatering igen. Mitt system har uppdaterats El Capitan två gånger och varje gång jag har fått fixa den för att använda den korrekt homebrew.

Om du inte är bekant med att använda kommandoraden och de vanligaste kommandona, läs du Kommandoraden är din bästa vän handledning först. Denna handledning gör ett bra jobb för att förklara grunderna för att använda kommandoraden. 

Du kan också referera till Kommandoraden för webbdesign serier och kurser Hur man är en Terminal Pro och Avancerade kommandolinje tekniker

Om du inte känner till homebrew, läs igenom handledningen Homebrew Demystified: OS X: s Ultimate Package Manager.

Sudopommandot

De sudo kommandot står för Super användare DO. Det låter dig springa något annat terminalkommando som superuser eller mer benämnd som rootanvändaren. Superbruket är datorns översta chef. Superanvändaren kan göra någonting på datorn både för att fixa och att förstöra. 

Användningen av det här kommandot kan vara mycket farligt.

Detta kommando finns i / Usr / bin katalogen. Du måste först se till att du har den katalogen i din väg. Kör därför det här kommandot i terminalen:

env | grep "PATH"

I linjen som börjar med PATH =, kolla på vägen / Usr / bin i colon separerade listan. Om det inte finns finns det här till ~ / .Bashrc fil för bash skal eller ~ / .Zshrc fil zsh för zsh-skalet:

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

Nu kan du använda sudo kommando. Vissa kan tro att det här är standard, men jag har funnit att vissa system saknar denna konfiguration. Jag debuggar datorproblem för många människor och har sett / Usr / bin katalog saknas från många människors inloggningsskript.

Att använda sudo kommando, skriver du kommandoraden du vill utföra efter sudo med ett utrymme. 

För exempel på fixering homebrew, Du måste ändra ägarskapet i katalogstrukturen till inloggningsnamnet. Om du inte är säker på vad systemet använder för inloggningsnamnet, öppna Terminal.app i hemkatalogen och skriv:

ls -ld .

De ls kommando kommer Lista innehållet i en katalog Flaggorna -ld säga ls för att visa den långa visningen med filattribut (l) och endast katalogen (d). De . betyder den aktuella katalogen. Detta bör ge en effekt som liknar detta:

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

De raguay är inloggningsnamnet på mitt system. Det kommer att vara annorlunda för dig och är namnet som du behöver ändra / Usr / local / äganderätt.

Nu, för att fixa ägande av / Usr / local / katalog, måste du använda chown kommando. De chown kommandot står för Ändra Ägare och det är vad det gör. På mitt system är kommandot:

sudo chown -R raguay / usr / local

De -R flaggan berättar chown att ändra ägandet rekursivt. Det betyder att varje fil och katalog i / Usr / local kommer att ha sin ägare ändrat till raguay. Du måste ändra användarnamnet för att återspegla ditt system.


Fixing Ownership of / usr / local

Ovan kan du se felmeddelandet när du försöker ändra / Usr / local katalog äganderätt utan att använda sudo. Jag använde inte -R flagga som det skulle generera ett fel för varje fil och katalog. Nästa kommandorad använder sudo kommando. Kommandot kommer att be om ditt lösenord och sedan utföra åtgärden utan fel.

Farorna

Som sagt har du mycket kraft över systemet. Var försiktig, du kan orsaka att systemet är oanvändbart med hjälp av sudo kommando. Till exempel är kommandoraden för att ta bort en fil rm för ReMove en fil. Om du skriver:

sudo rm -R /

Du raderar allt på hårddisken. Det skulle innebära att du måste helt installera om operativsystemet, alla program du hade och alla dina datafiler från en säkerhetskopia. Om du inte har en säkerhetskopia, ja, det är bara borta.

Även chown Kommando kan göra saker oanvändbara. Om du ändrar ägaren till alla filerna i / Applicatons katalog till ett namn som inte existerar, kommer du inte att kunna köra några av dina program i den katalogen.

Var därför försiktig med hur du använder sudo kommando.

Slutsats

Nu när du nu fixar ägarproblem på din Mac har du kunskap för att åtgärda liknande problem du kanske har i framtiden. Kom bara ihåg att använda kommandot mycket noga och kontrollera kommandot du skriver innan du anger ditt lösenord. 

När du har kört det, kan det vara svårt att nästan omöjligt göra det omöjligt utan en fullständig ominstallation av operativsystemet.