logo

Chmod-kommando i Linux/Unix med exempel

Linux chmod kommando används för att ändra åtkomstbehörigheter för filer och kataloger. Det står för ändra läge . Det kan inte ändra tillståndet för symboliska länkar. Till och med ignorerar den de symboliska länkarna som stöter på rekursiv kataloggenomgång.

I den Linux filsystem är varje fil associerad med en viss ägare och har behörighetsåtkomst för olika användare. Användarklasserna kan vara:

  • ägare
  • gruppmedlem
  • Andra (alla andra)

Filbehörigheterna i Linux är följande tre typer:

  • läsa (r)
  • skriv (w)
  • exekvera (x)

Kort historia om Chmod

Först representeras chmod-kommandot i AT&T UNIX version 1 med chmod-systemanropet. Åtkomstkontrollistorna inkluderades i flera filsystem som inkluderade i dessa vanligaste lägen för att öka flexibiliteten eftersom systemen växte i antal och ett antal användare.

Chmod-versionen arrangerad i GNU-coreutils specificerades av Jim Meyering och David MacKenzie. Detta kommando finns som ett isolerat paket för Microsoft Windows som en del av UnxUtils inbyggda Win32-portsamling av grundläggande GNU Unix-liknande verktyg. Dessutom har kommandot chmod skickats till IBM i OS.

Låt oss se hur du ändrar filbehörigheten med kommandot chmod.

Syntax:

hur man hittar dolda appar på Android

Den grundläggande syntaxen för chmod-kommandot är som följer:

 chmod 

Generellt implementerade alternativ är:

    -R:Det står för rekursiv, det vill säga lägga till objekt i underkataloger.-I:Det står för verbose, display objects modified (omodifierade objekt visas inte).

Målobjektet påverkas om en symbolisk länk nämns. Fillägen som är relaterade till själva symboliska länkar används vanligtvis inte.

Den primära komponenten i chmod-behörigheten:

Till exempel, rwxr-x---

Alla grupper med tre tecken anger behörigheter för alla klasser:

    rwx:De tre tecknen längst till vänster anger behörigheter för filägaren (dvs. användarklassen).r-x:De tre mittersta tecknen anger behörigheter för gruppen som äger filen (d.v.s. gruppklassen).---:De tre tecknen längst till höger anger behörigheter för klassen Other. Användare som inte är filägare och gruppmedlemmar kan inte komma åt filen.

Alternativ:

Kommandot chmod stöder följande kommandoradsalternativ:

förklara dataoberoende

-c, --ändringar: Det liknar det verbose alternativet, men skillnaden är att det rapporteras om en ändring har gjorts.

-f, --tyst, --tyst: Den används för att undertrycka felmeddelanden.

-v, --verbose: Den används för att visa en diagnostik för varje bearbetad fil.

--no-preserve-root: Den används för att inte behandla omvänt snedstreck ('/'), särskilt (standard).

--bevara-rot: Om det här alternativet används kommer det inte att fungera rekursivt med snedstreck ('/').

--referens=RFIL: Den används för att specificera RFILE:s läge alternativt MODE-värden.

-R, --rekursiv: Den används för att ändra filer och kataloger rekursivt.

--hjälp: Den används för att visa hjälpmanualen med en kort beskrivning av användning och supportalternativ.

--version: Den används för att visa versionsinformationen.

Syntax för filbehörighet

Om du är en ny användare kan du bli förvirrad med de olika typerna av bokstäver som används för att ange filbehörighet. Så, innan vi går vidare med kommandot chmod, låt oss förstå syntaxen för filbehörighet.

För att ställa in behörigheten för en fil eller katalog måste vi ange följande saker:

  • Vem: Vilka vi är. (användare)
  • Vad: Vilken förändring ska vi göra (som att lägga till eller ta bort behörigheten)?
  • Vilken: Vilken av behörigheterna?

Tillståndsförklaringen representeras i indikatorer som u+x, u-x. Där 'u' står för 'user', '+' står för add, '-' står för remove, 'x' står för körbar (som).

reactjs karta

Användarvärdet kan vara:

u: ägaren till filen

g: gruppmedlem

o: andra

a: alla

Behörighetstyperna kan vara r, w och x.

Ställa in och uppdatera behörigheterna

För att ställa in behörigheten för en fil, kör en behörighetssats med kommandot chmod. Till exempel vill vi ställa in läs- och skrivbehörighet för alla användare och grupper av filen 'Demo.txt'. Vi måste skicka tillståndssatsen 'u=rw,go=rw Demo.txt' med chmod-kommandot. För att visa filbehörigheten, kör följande kommando:

 ls -l Demo.txt 

Kommandot ovan visar filens aktuella filbehörighet för filen 'Demo.txt'.

För att ändra behörigheten, kör följande kommando:

 chmod u=rw,go=rw Demo.txt 

Tänk på följande utdata:

Linux chmod kommando

Från ovanstående utdata har åtkomstbehörigheten för 'Demo.txt' ändrats.

Ställa in behörigheter för flera filer

Vi kan ställa in behörighet för flera filer samtidigt genom att använda kommandot chmod. För att ändra filbehörigheten för flera filer, ange filmönstret med kommandot chmod. Till exempel, om vi vill ställa in läs- och skrivbehörighet för alla textfiler, ange *. txt-mönster med chmod-kommandot.

För att se behörigheten för alla textfiler från den aktuella arbetskatalogen, kör följande kommando:

 ls -l *.txt 

Det kommer att lista alla textfiler med deras behörighetsläge. Tänk på följande utdata:

Linux chmod kommando

Från ovanstående utdata har många filer endast läsbehörighet för andra användare.

För att ställa in läs- och skrivbehörighet för andra användare, kör följande kommando:

 chmod o+w *.txt 

Det kommer att ställa in läs- och skrivbehörighet för andra användare av textfilerna. Tänk på följande utdata:

Linux chmod kommando

Numerisk stenografi

Vi kan använda numeriska värden istället för bokstäver för att specificera behörigheterna. Ett tresiffrigt värde används för att ange behörigheten. Siffran längst till vänster representerar ägaren (u), och den mittersta siffran representerar gruppmedlemmarna (g). Siffran längst till höger representerar de andra (o).

Följande tabell representerar siffrorna och deras behörigheter:

Siffror Behörigheter
000 Inget tillstånd
001 Utför behörighet
010 Skrivtillstånd
011 Skriv och kör behörigheter
100 Lästillstånd
101 Läs och kör behörigheter
110 Läs- och skrivbehörigheter
111 Läs, skriv och kör behörigheter

Symboliska lägen

Dessutom accepterar kommandot chmod den finare symboliska notationen, vilket tillåter att ändra specifika lägen. Det symboliska läget består av tre element, som slås samman för att bilda en enda textsträng:

 $ chmod [references] [operator] [modes] file... 

chmod-programmet använder en operator för att definiera hur fillägena ska ordnas. Nedanstående operatörer är godkända:

Operatör Beskrivning
+ Den lägger till det beskrivna till de beskrivna klasserna.
- Det tar bort det beskrivna läget från de beskrivna klasserna.
= Det representerar att de beskrivna lägena ska skapas på samma sätt för de beskrivna klasserna.

Lägena representerar vilka behörigheter som kommer att tas bort eller beviljas från de beskrivna klasserna. Det finns huvudsakligen tre vanliga lägen som är relaterade till de vanliga behörigheterna:

namn Läge Beskrivning
läsa r Den läser en fil eller listar innehållet i en katalog.
skriva I Den skriver till en katalog eller fil.
Kör x Den återupptar ett katalogträd eller kör en fil.
specialutförande X Det är inte tillstånd utan kan istället användas istället för x. Den använder exekveringsbehörigheterna för kataloger trots deras nuvarande behörigheter och använder exekveringsbehörigheterna för en fil som har åtminstone en exekveringsbehörighetsbituppsättning. Det är användbart om det används med operatorn '+' och utan att ställa in exekveringsbehörigheten, vilket skulle hända om vi bara använde chmod -R a+rx ., medan vi kan implementera chmod -R a+rx . med x snarare.

Flera modifieringar kan beskrivas genom att isolera flera symboliska lägen tillsammans med kommatecken. Kommandot chmod kommer att inspektera umask om en användare inte är angiven.

Speciallägen

Dessutom kan kommandot chmod ändra speciallägen och extra behörigheter för en katalog eller fil. De symboliska lägena tillämpar 's' för att indikera setgid- och setuid-lägena och 't' för att indikera sticky-läget. Ett läge används endast för rätt klasser, oavsett om andra klasser nämns eller inte.

Nästan alla operativsystem stöder numeriskt speciallägesspecifikationen, särskilt i oktal, men några få inte. Endast de symboliska lägena kan tillämpas på dessa system.

sminkprodukters namn

Några exempel på kommandoraden:

Kommando Beskrivning
chmod a+r publicComments.txt Det kommer att lägga till läsbehörighet för varje klass (d.v.s. grupp, ägare och andra).
chmod a-x publicComments.txt Det kommer att ta bort exekveringsbehörigheten för varje klass.
chmod a+rx viewer.sh Det kommer att lägga till exekverings- och läsbehörigheter för varje klass.
chmod u=rw, g=r, o=internalPlan.txt Det kommer att ställa in skriv- och läsbehörigheter för användaren, ser läsning för grupp och avvisa åtkomst för andra.
chmod -R u+w, go-w docs Det kommer att inkludera skrivbehörigheten till katalogdokumenten och vart och ett av dess innehåll för ägaren och tar bort skrivbehörigheten för andra och grupp.
chmod and=rw groupAgreements.txt Det kommer att ställa in skriv- och läsbehörigheter för grupp och användare.
chmod 664 global.txt Det kommer att ställa in skriv- och läsbehörigheter för grupp och användare och ger läsbehörighet till andra.
chmod 744 Show_myCV.sh Det kommer att ställa in kör-, skriv- och läsbehörigheter för användaren och ger läsbehörighet till Group and Others.