chmod kommando i Linux med exempel

När du arbetar med filer och kataloger i Linux är kommandot chmod ett viktigt verktyg i din arsenal. Som en akronym för 'Change Mode' är kommandot chmod utformat för att hjälpa Linux-användare att justera fil- eller katalogbehörigheter. Det här kommandot är fullt av mångsidighet och är avgörande för säker och effektiv filhantering. Låt oss dyka ner i chmod-kommandots krångligheter och utforska hur det kan användas praktiskt.

Förstå kommandot chmod i Linux

Vad är chmod-kommandot?

Kommandot chmod är ett kommandoradsverktyg för Linux för att modifiera filsystemläget. Det här läget bestämmer vilka typer av behörigheter som användare och grupper har över filer och kataloger. Dessa behörigheter reglerar vem som kan läsa, skriva och köra de angivna filerna.

Varför använda kommandot chmod?

I Linux är filer och kataloger delade resurser. För att skydda dessa resurser måste åtkomstbehörigheter hanteras. Kommandot chmod låter dig kontrollera dessa behörigheter och säkerställa systemsäkerhet. Oavsett om du är en systemadministratör som skyddar känslig data eller en utvecklare som sätter upp ett projekt, är det nödvändigt att förstå chmod.

Förstå chmod kommandosyntax

Kommandot chmod följer nedanstående syntax:

chmod [OPTIONS] MODE[,MODE]... FILE...

OPTIONS kan vara valfria parametrar som ger ytterligare funktionalitet, MODE anger vilka behörigheter som ska ställas in och FILE är filen eller katalogen vars behörigheter kommer att ändras. chmod har två primära metoder för att definiera behörigheter: Numeriskt läge och Symboliskt läge.

Olika alternativ för chmod-kommandot

chmod kommando utan några alternativ

Som standard, utan några alternativ, ändrar chmod filens behörigheter till det läge som anges av användaren.

chmod 755 filename

Kommandot ovan ändrar behörigheterna för 'filnamn' så att ägaren har läs-, skriv- och exekveringsbehörigheter (7), och gruppen och andra har läs- och exekveringsbehörigheter (5).

chmod kommando med alternativ

Flera alternativ kan användas med chmod för att utöka dess funktionalitet:

  • -R eller –rekursiv: Ändrar filer och kataloger rekursivt.
  • -f eller –tyst eller –tyst: Undertrycker de flesta felmeddelanden.
  • -v eller –verbose: Matar ut en diagnostik för varje fil som bearbetas.
  • –reference=RFILE: Ställer in behörigheter för att matcha RFILE.

Förstå filbehörigheter med chmod

Tre tecken anger behörigheter i Linux:

  • r (läs): Behörighet att läsa filens innehåll.
  • w (skriv): Behörighet att ändra eller ta bort filen.
  • x (execute): Behörigheten att köra filen.

Till exempel innebär en fil med rwx-behörigheter för användaren att användaren kan läsa, skriva och köra filen.

Numeriska och symboliska lägen i chmod

Det finns två sätt att ändra behörigheter med chmod:

  • Numeriskt läge: Detta läge använder siffror för att representera behörigheter. Läs är 4, skriv är 2 och exekvering är 1. Dessa siffror läggs ihop för att ställa in behörigheter. Till exempel, för att ge användaren läs-, skriv- och exekveringsbehörigheter (7), skulle du använda kommandot:
chmod 700 filename
  • Numeriskt läge: Detta läge använder siffror för att representera behörigheter. Läs är 4, skriv är 2 och exekvering är 1. Dessa siffror läggs ihop för att ställa in behörigheter. Till exempel, för att ge användaren läs-, skriv- och exekveringsbehörigheter (7), skulle du använda kommandot:
chmod u+x filename

Vanliga chmod kommandoexempel

Med en förståelse för hur behörigheter och kommandot chmod fungerar, låt oss utforska några praktiska exempel.

Exempel 1: Ändra behörigheter med numeriskt läge

chmod 755 filename

Detta kommando ändrar behörigheterna för 'filnamn' så att:

  • Användaren (ägaren) har läst (4), skriv (2) och kör (1) behörigheter – summerat till 7.
  • Gruppen och andra har läst (4) och köra (1) behörigheter, totalt 5.

Med andra ord har ägaren full åtkomst, medan gruppmedlemmarna och andra kan läsa och köra filen men inte ändra den.

Exempel 2: Ändra behörigheter med symboliskt läge

chmod u+x filename

Detta kommando lägger till exekveringsbehörighet för användaren till "filnamn". Här är uppdelningen:

  • u: Representerar användaren.
  • +: Anger att en behörighet läggs till.
  • x: Står för exekveringstillstånd.

För att sammanfatta säger detta kommando till systemet: "Lägg till (+) exekveringsbehörighet (x) för användaren (u) för denna fil ('filnamn')".

Exempel 3: Ta bort behörigheter

chmod go-w filename

Detta kommando tar bort skrivbehörigheter för gruppen och andra från 'filnamn'. I detalj:

  • go: Står för grupp och andra.
  • -: Indikerar att en behörighet tas bort.
  • w: Representerar skrivbehörighet.

Därför tar detta kommando bort skrivbehörigheten från gruppen och andra användare, vilket förbättrar filens säkerhet.

Exempel 4: Ange alla behörigheter

chmod ugo+rwx filename

Detta kommando ger alla behörigheter till alla användare för 'filnamn'. Uppdelningen är som följer:

  • ugo: Representerar användare, grupp och andra.
  • +: Anger att behörigheter läggs till.
  • rwx: Står för läs-, skriv- och körrättigheter.

Detta kommando öppnar effektivt "filnamn" för alla, men det bör användas med försiktighet, med tanke på säkerhetskonsekvenserna.

Exempel 5: Använda chmod med -R Option

chmod -R 755 directoryname

Detta kommando ändrar rekursivt behörigheterna för alla filer och kataloger i "katalognamn".

  • -R: Står för 'rekursiv' och det används när vi vill ändra behörigheter för alla filer och kataloger inuti en katalog.

Här ger detta kommando fullständiga behörigheter till ägaren och läs- och exekveringsbehörigheter till grupp och andra för 'katalognamn' och alla dess kapslade filer och kataloger.

Exempel 6: Ändra gruppbehörigheter

chmod g-wx filename

Detta kommando tar bort skriv- och körrättigheterna från gruppen för 'filnamn'. Här är förklaringen:

  • g: Står för gruppen.
  • -: Indikerar att behörigheter tas bort.
  • wx: Representerar skriv- och körrättigheter.

Som ett resultat kommer gruppmedlemmar som är associerade med 'filnamn' inte längre att kunna ändra eller köra det.

Exempel 7: Ändra flera behörigheter

chmod u=rwx,g=rx,o=r filename

Detta kommando ställer in olika behörigheter för olika typer av användare. Så här gör den:

  • u=rwx: Ställer in användarens behörighet att läsa, skriva och köra.
  • g=rx: Ställer in gruppens behörigheter att läsa och köra.
  • o=r: Ställer in den andres behörighet att endast läsa.

Detta gör att du kan kontrollera åtkomstnivåer för olika typer av användare detaljerat.

Exempel 8: Kopieringsbehörigheter

chmod --reference=filename1 filename2

Detta kommando kopierar behörigheterna från 'filnamn1' till 'filnamn2'.

  • –reference=filnamn1: Indikerar att 'filnamn1' är referensfilen från vilken behörigheter kommer att kopieras.

Det här kommandot är praktiskt när du snabbt vill tillämpa samma behörigheter på flera filer.

Exempel 9: Ändra behörigheter med Sticky Bit

chmod 1757 directoryname

Detta kommando ställer in sticky bit (1) och behörigheter (757) för 'katalognamn'.

  • Den sticky biten (1) säkerställer att endast filägaren, katalogägaren eller rotanvändaren kan ta bort eller byta namn på filer.
  • 757: Ställer in användarens behörigheter att läsa, skriva och köra (7), och gruppens och andras behörigheter att läsa, skriva och sticky bit (5, 7).

Detta är särskilt användbart för kataloger som delas av flera användare, som /tmp, för att förhindra användare från att ta bort eller byta namn på varandras filer.

Exempel 10: Använda chmod med Find Command

find . -type f -exec chmod 644 {} \;

Detta kommando hittar alla vanliga filer i den aktuella katalogen och dess underkataloger och ändrar deras behörigheter till 644 (läs/skriv för ägare och läs för grupp och andra).

  • hitta . -typ f: Hittar alla filer i den aktuella katalogen och underkatalogerna.
  • -exec chmod 644 {} \;: Ändrar behörigheterna för varje fil som hittas.

Det här kommandot är användbart när du vill ändra behörigheterna för flera filer baserat på vissa kriterier.

Avancerade chmod kommandoexempel

Som med alla Linux-kommandon har chmod några knep som kan göra ditt liv ännu enklare. Låt oss utforska dessa avancerade exempel.

Avancerat exempel 1: Ändra behörigheter rekursivt

chmod -R 755 directoryname

Detta kommando ändrar behörigheterna för katalogen och allt dess innehåll rekursivt. Så här gör den:

  • -R: Detta är det rekursiva alternativet. Den tillämpar ändringen på katalogerna och filerna i dessa kataloger.
  • 755: Detta ställer in användarens behörigheter att läsa, skriva och köra (7) och gruppens och andras behörigheter att läsa och köra (5).

Detta är särskilt användbart när du vill ändra behörigheterna för en katalog och alla filer och underkataloger i den.

Avancerat exempel 2: Ställa in Setuid, Setgid och Sticky Bits

chmod 4755 filename
chmod 2755 directoryname
chmod 1755 directoryname

Dessa kommandon ställer in setuid, setgid och sticky bitar för en fil eller katalog:

  • Setuid-biten (4): När den är inställd på en fil kan användare köra filen med tillstånd från filens ägare.
  • Setgid-biten (2): När den är inställd på en katalog, gör att nya filer och underkataloger som skapats inom den ärver dess grupp, snarare än den skapande användarens primära grupp.
  • Den klibbiga biten (1): Skyddar borttagning av filer i en katalog. När det är inställt kan filer endast tas bort av deras ägare, katalogägaren eller rotanvändaren.

Avancerat exempel 3: Ändra endast katalogbehörigheter

find /path -type d -exec chmod 755 {} \;

Detta kommando ändrar behörigheterna för endast katalogerna under en given sökväg och lämnar filerna som de är:

  • hitta /sökväg -typ d: Hittar alla kataloger under den givna sökvägen.
  • -exec chmod 755 {} \;: Ändrar behörigheterna för varje hittad katalog.

Det här kommandot är användbart när du vill ändra behörigheterna för endast katalogerna, inte filerna.

Avancerat exempel 4: Ändra endast filers behörigheter

find /path -type f -exec chmod 644 {} \;

Detta kommando ändrar behörigheterna för endast filerna under en given sökväg och lämnar kataloger som de är:

  • hitta /sökväg -typ f: Hittar alla filer under den givna sökvägen.
  • -exec chmod 644 {} \;: Ändrar behörigheterna för varje fil som hittas.

Det här kommandot är användbart när du vill ändra behörigheterna för endast filerna, inte katalogerna.

Avancerat exempel 5: Göra ett skript körbart av alla

chmod +x scriptname

Detta kommando lägger till exekveringsbehörigheten till användaren, gruppen och andra för 'scriptname':

  • +x: Lägger till exekveringsbehörighet.

Detta är en vanlig operation när du skapar ett nytt skript och vill göra det körbart.

Slutsats

Kommandot chmod är ett viktigt verktyg i Linux för att hantera filbehörigheter. Från den grundläggande användningen till mer avancerade tekniker som rekursiva förändringar och inställning av speciella bitar, förståelse av chmod är nyckeln till effektiv Linux-filhantering. Med de givna exemplen bör du med säkerhet kunna ställa in behörigheter efter dina behov och öka din produktivitet i Linux-miljön.

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)

Lämna en kommentar