Chmod-kommandot och Linux-filtillstånden förklaras

Om du vill hantera filbehörigheter på ett Linux-operativsystem måste du känna till chmod-kommandot.

Om du vill hantera filbehörigheter på ett Linux-operativsystem måste du känna till chmod-kommandot.
Annons

Så du har hittat en smak av Linux som du gillar, men nu är du förvirrad eftersom du inte har den svåraste aning om terminalkommandon och Linux-filbehörigheter?

Eller kanske har du en webbplats som är värd på en Linux-server och du har stött på några problem med filtillstånd som bara kan lösas med någon kommandoradsmagi.

Oavsett, en av de mest nödvändiga Linux-kommandon för att lära dig en A-Ö av Linux - 40 viktiga kommandon som du borde veta en A-Ö av Linux - 40 viktiga kommandon som du borde veta Linux är det ofta ignorerade tredjehjulet till Windows och Mac. Ja, under det senaste decenniet har operativsystemet öppen källkod fått mycket dragkraft, men det är fortfarande långt ifrån att bli övervägt ... Läs mer är ett litet men kraftfullt kommando som heter chmod . Men innan vi förklarar vad kommandot gör måste vi först förstå lite om hur Linux hanterar filsäkerhet.

Grunderna för Linux-filtillstånd

Linux-operativsystem är faktiskt Unix-liknande system (förstå Linux vs Unix), och Unix-liknande system anslår filbehörigheter som så:

Varje fil har en ägare som bestämmer filens "användarklass". Varje fil har också en grupp som bestämmer filens gruppklass. Varje systemanvändare som inte är ägaren och inte hör till samma grupp är fast besluten att vara andra .

Alla filer på Unix-liknande system har behörigheter tilldelade till alla tre klasserna, och dessa bestämmer vilka åtgärder som kan vidtas av nämnda klasser för den angivna filen.

De tre åtgärder som finns tillgängliga på ett Unix-liknande system är: läs (möjlighet att öppna och visa innehållet i filen), skriva (möjligheten att öppna och ändra innehållet i en fil) och utföra (förmågan att köra filen som ett körbart program).

Med andra ord bestämmer en fils behörigheter om eller inte:

  • Ägaren kan läsa, skriva och exekvera filen.
  • Gruppen kan läsa, skriva och exekvera filen.
  • Alla andra kan läsa, skriva och exekvera filen.

Linux-filbehörigheter kan visas i två format.

Det första formatet kallas symbolisk notation, som är en sträng med 10 tecken: ett tecken som representerar filtypen, då nio tecken som representerar filen läser (r), skriver (w) och kör (x) behörigheter i ordning av ägare, grupp och andra. Om det inte är tillåtet används symbolen (-).

Till exempel:

-rwxr-xr-- 

Det betyder att det är en vanlig fil med läs, skriv och kör behörigheter för ägaren. Läs och kör behörigheter för gruppen och läs bara behörigheter för alla andra.

Det andra formatet kallas numeriskt notation, vilket är en sträng med tre siffror som respektive representerar användare, grupp och andra behörigheter. Varje siffra kan variera från 0 till 7, och varje siffras värde erhålls genom att summera klassens behörigheter:

  • 0 betyder inga tillåtna rättigheter.
  • +1 om klassen kan exekvera filen.
  • +2 om klassen kan skriva till filen.
  • +4 om klassen kan läsa filen.

Med andra ord slutar betydelsen av varje siffervärde att vara:

  • 0: Ingen tillåtelse
  • 1: exekvera
  • 2: Skriv
  • 3: Skriv och kör
  • 4: Läs
  • 5: Läs och kör
  • 6: Läs och skriv
  • 7: Läs, skriv och kör

Så ovanstående exempel ( -rwxr-xr-- ) skulle vara 754 i numerisk notering.

Det är Linux-filtillstånd i ett nötskal.

Vad är Chmod?

På Unix-liknande system är chmod ett systemnivåkommando som står för "byt läge" och låter dig manuellt ändra behörighetsinställningar för en fil.

För att inte vara förvirrad med chown, vilket är ett annat systemnivåkommando på Unix-liknande system som står för "Change Owner" och låter dig tilldela äganderätten till en fil till en annan användare, eller chgrp, som står för "Change Group" och tilldelar en fil till en annan grupp. Dessa är viktiga att veta, men inte lika vanligt använda som chmod.

Vad betyder Chmod 644?

Att ställa in en fils behörigheter till 644 gör det så att ägaren kan komma åt och ändra filen men vill ha alla andra kan bara komma åt utan att ändra, och ingen kan exekvera filen - inte ens ägaren. Det här är den perfekta inställningen för filer som är tillgängliga för allmänheten eftersom det balanserar flexibilitet med säkerhet.

Vad betyder Chmod 755?

Att ställa in en fils behörigheter till 755 är i princip samma sak som 644, förutom att alla också har exekvera behörigheter. Detta används huvudsakligen för offentligt tillgängliga kataloger eftersom det krävs exekveringsbehörighet för att kunna byta till en katalog.

Vad betyder Chmod 555?

Att ställa in en fils behörigheter till 555 gör det så att filen inte kan ändras alls av någon utom systemets superanvändare (läs mer om Linux superuser Vad är SU & varför är det viktigt att använda Linux effektivt? Vad är SU och varför är det Viktigt att använda Linux effektivt? Linux SU eller root användarkonto är ett kraftfullt verktyg som kan vara användbart när det används korrekt eller förödande om det används oaktsamt. Låt oss titta på varför du borde vara ansvarig när du använder SU. Läs mer). Detta är inte lika vanligt som 644, men det är fortfarande viktigt att veta eftersom inställningen för skrivskyddad användning förhindrar oavsiktliga ändringar och / eller manipulering.

Vad betyder Chmod 777?

Att ställa in en fils behörigheter till 777 gör det så att vem som helst kan göra vad de vill ha med filen. Det här är en stor säkerhetsrisk, speciellt på webbservrar! Bokstavligen kan vem som helst få tillgång till filen, ändra det men de vill och utföra det på systemet. Du kan föreställa dig den potentiella skaden om en skurkaktig användare fick händerna på det.

Så här använder du Chmod på Linux

Chmod-kommandot har ett enkelt format:

 chmod [permissions] [file] 

Tillstånd kan ges i numerisk notering, vilket är det bästa formatet som ska användas när du vill tilldela specifika behörigheter för alla klasser:

 chmod 644 example.txt 

Tillstånd kan också ges i symbolisk notation, vilket är användbart när du bara vill ändra behörigheterna för en viss klass. Till exempel:

 chmod u=rwx example.txt chmod g=rw example.txt chmod o=rw example.txt 

Du kan ändra behörigheter för flera klasser, t.ex. det här exemplet som anger att ägaren ska läsa / skriva / exekvera men gruppen och andra att läsa / utföra:

 chmod u=rwx, g=rw, o=rw example.txt 

När du tilldelar samma behörigheter till flera klasser kan du kombinera dem:

 chmod u=rwx, go=rw example.txt 

Men skönheten med att använda symbolisk notering lyser när du bara vill lägga till eller ta bort tillståndet för en viss åtgärd för en viss klass.

Till exempel lägger detta till behörigheten för filens ägare:

 chmod u+x example.txt 

Och detta tar bort skriv och exekvera behörigheter för andra användare:

 chmod o-wx example.txt 

Slutligen, om du vill tillämpa en viss uppsättning behörigheter för alla filer och mappar i en viss katalog (dvs. en rekursiv chmod), använd alternativet -R och rikta in en katalog:

 chmod -R 755 example_directory 

Medan chmod-kommandot ser lite galet vid första anblicken är det faktiskt ganska enkelt och helt logiskt. Om du förstår ovanstående har du i princip behärskat chmod!

Läs mer om Mastering Linux

Kommandon som chmod, chown och chgrp är bara toppen av Linux-isberget. Om du är helt ny i operativsystemet rekommenderar vi att du checkar ut dessa snygga knep för Linux nybörjare samt dessa Linux-kommandon som du aldrig ska springa.

Men viktigast av allt, gör du bäst genom att kolla in vår omfattande nybörjarguide för Ubuntu och Linux Ubuntu: En nybörjarhandbok Ubuntu: En nybörjarhandledning Nyfiken om Ubuntu, men inte säker på var du ska börja? Allt du kan behöva för att komma igång med den senaste versionen av Ubuntu är här, skrivet i lättförståelig, vanlig engelska. Läs mer, som lär dig allt du behöver veta för att komma igång och bekanta dig nog att känna dig bekväm.

In this article