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:
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:
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:
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:
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:
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. |