Förstå Linux-behörigheter och chmod-användning

Jag har gått en kurs i Linux de senaste månaderna och en aspekt av Linux som alltid förvirrade mig var hur behörigheter fungerade. Till exempel, när jag laddade upp en fil till min webbserver en gång och fick ett fel, blev jag tillsagd av min webbvärd att ändra filbehörigheterna till 755.

Jag hade ingen aning om vad det betydde, även om det löste problemet genom att ändra behörigheterna. Jag har nu insett att Linux- behörigheter inte är så komplicerade, du måste bara förstå systemet. I den här artikeln kommer jag att prata om Linux- behörigheter på en hög nivå och visa dig hur du använder kommandot chmod för att ändra behörigheter för filer och mappar.

Linux-behörigheter och -nivåer

I Linux finns det i princip tre behörigheter som du normalt behöver oroa dig för: läsa, skriva och köra. Alla dessa tre är ganska självförklarande. När nu dessa behörigheter tillämpas på en fil, tillämpas de i nivåer.

Det finns tre behörighetsnivåer i Linux : ägare, grupp och annat. Ägaren är användaren som äger filen/mappen, gruppen inkluderar andra användare i filens grupp och andra representerar bara alla andra användare som inte är ägaren eller i gruppen.

Läs(Read) , skriv och kör representeras antingen som symboliska tecken eller som oktala tal. Till exempel, om du gör en ls -l i en katalog med några filer, kommer du att se den symboliska teckenrepresentationen av behörigheterna.

Behörigheterna skrivs enligt följande: den första biten är antingen ett bindestreck eller bokstaven d. Dash betyder att det är en fil och d står för katalog. Observera att den första biten också kan vara ett l om filnamnet är en länk. Därefter finns det tre grupper om tre bitar. Den första biten i varje grupp är för läsning, den andra biten är för skrivning och den tredje biten är för exekvering. De första tre bitarna är för ägaren, de andra tre bitarna är för gruppen och de tre tredje bitarna är för andra. Här är en mer visuell förklaring.

Om du ser ett streck i stället för en bokstav betyder det att ägaren, gruppen eller alla andra användare inte har den behörigheten. I exemplet ovan har ägaren, gruppen och alla andra läs- och skrivbehörigheter.

Om du tittar på utdata från kommandot ls -l kommer du att märka att min övningstextfil har följande behörigheter:

-rw-rw-rw-

Det betyder att alla endast har läs-/skrivbehörigheter för filen. Här är ett annat exempel:

drwxr--r--

När vi tittar på den första biten kan vi se att behörigheterna är för en katalog. Ägaren har läs-/skriv-/körrättigheter, men gruppen och andra användare har bara läsbehörighet.

Octal nummerrepresentation

Så det är så behörigheter visas i Linux med hjälp av symboler. Det andra sättet att representera samma behörigheter är att använda oktala tal. När vi senare använder kommandot chmod kommer du att se att du kan ändra behörigheterna med antingen symboler eller oktala tal.

Så hur representerar Linux läsa, skriva och köra med oktala tal? I grund och botten tilldelar den bara ett nummer till varje behörighet som visas nedan.

Läsbehörigheten representeras av 4, skriv med 2 och kör med 1. Allt du behöver göra är att lägga till dem för att få den oktala behörigheten. Låt oss till exempel ta exemplet ovan där alla har alla behörigheter:

-rwxrwxrwx

Ägaren har rwx, så vi lägger till 4 + 2 + 1 för att få värdet 7. Vi gör samma sak för gruppen och samma sak för andra. Det slutliga oktala värdet är 777. Låt oss ta en titt på exemplet där vi bara gav läs/skrivbehörigheter:

-rw-rw-rw-

Det första oktala talet blir 4 + 2 eftersom vi lägger till läs och skriv. Det andra kommer att vara samma som det tredje oktala talet. Här har vi ett slutligt oktalt värde på 666.

Så nu ska vi försöka på andra sättet. Säg att vi vill veta vilka behörigheter 755 representerar? Tja, det är ganska lätt att räkna ut om du delar upp det efter individuella siffror. Den första siffran är 7, vilket vi bara kan få genom att lägga till 4 + 2 + 1, vilket betyder att ägaren har läs-/skriv-/körbehörighet. Fem kan bara fås genom att lägga till 4 + 1, vilket innebär att gruppen och andra användare har läs- och körrättigheter.

Förhoppningsvis(Hopefully) är det en bra förklaring till hur man representerar behörigheter i Linux med oktala tal. Det är ganska okomplicerat överlag.

Använder chmod för att ändra behörigheter

Nu när vi förstår hur man läser behörigheter, låt oss prata om hur vi kan ändra dem. Det enklaste verktyget att använda för detta ändamål är kommandot chmod. Så här fungerar det. Det bästa sättet att förklara kommandot är att gå igenom ett exempel.

Låt oss börja med de behörigheter vi pratade om ovan, nämligen:

-rw-rw-rw-

Om vi ​​ville lägga till exekveringsbehörigheten för ägare, grupp och annat, skulle vi kunna göra det på två sätt. Vi skulle kunna använda symbolmetoden eller oktalmetoden. För symbolmetoden skulle vi göra följande, som visas nedan:

Det exakta kommandot är

chmod a+x filename

Syntaxen är följande: bokstaven eller bokstäverna som representerar ägaren ( u ), grupp ( g ), annan ( o ) eller alla ( a ) följt av ett + för att lägga till behörigheter eller ett för att ta bort behörigheter och sedan bokstaven för behörigheten ( r för läsa, w för skriva och x för köra).

I exemplet ovan lade jag till exekveringsbehörigheten för alla användare. Resultatet som du kan se i skärmdumpen ovan är ett x för ägare, grupp och annat. Låt oss nu säga att jag ville ta bort skriv- och körrättigheterna endast för gruppen och andra användare.

Som du kan se här brukade jag följande kommando för att åstadkomma detta:

chmod go-wx filename

Eftersom jag vill ändra behörigheterna för grupp och annat använder jag bokstaven g och bokstaven o . Jag vill ta bort behörigheter, så jag använder tecknet – . Slutligen vill jag ta bort skriv- och körrättigheterna, så jag använder w och x . Här är en praktisk liten tabell för symbolanvändning:

Så det är allt som behövs för att använda symbolmetoden. Låt oss nu prata om den oktala metoden, som jag tycker är lite lättare. Octal är trevligt eftersom du kan lägga till eller ta bort behörigheter på en gång.

Om vi ​​börjar med följande behörigheter för en fil, låt oss se hur vi kan ändra dem med den oktala metoden:

-rw-rw-rw-

Ovan(Above) kan du se att jag använde följande kommando:

chmod 744 filename

Detta säger i princip att ägaren får läs-/skriv-/körtillstånd och att gruppen och andra endast får läsbehörighet. Som du kan se är det enkelt att lägga till eller ta bort behörigheter i ett enkelt kommando. Låt oss fortsätta och säga att jag vill ändra behörigheter igen.

Nu använde jag följande kommando, återigen ett väldigt enkelt:

chmod 640 filename

Här har vi gett ägaren läs/skrivbehörighet, gruppen endast läsbehörighet och den andra gruppen inga behörigheter. Du använder en nolla för att ange inga behörigheter. Ganska enkelt, va?

Sammanfattningsvis är detta en mycket enkel översikt över Linux- behörigheter och det kan bli mycket mer komplicerat än så här, men för nybörjare är det ett bra ställe att börja. Jag kommer att publicera fler artiklar om mer avancerade behörigheter i framtiden. Om du har några frågor, kommentera gärna. Njut av!



About the author

Jag är en datorexpert och har hjälpt människor med sin dator sedan 2009. Mina kunskaper inkluderar iphone, mjukvara, prylar och mer. Jag har också arbetat som instruktör de senaste fyra åren. Under den tiden har jag lärt mig hur man hjälper människor att lära sig nya program och hur man använder sina enheter på ett professionellt sätt. Jag tycker om att ge tips om hur jag kan förbättra mina kunskaper så att alla kan bli framgångsrika på jobbet eller i skolan.



Related posts