Linux chmod-kommandoen brukes til å endre tilgangstillatelsene til filer og kataloger. Det står for endre modus . Det kan ikke endre tillatelsen til symbolske lenker. Til og med ignorerer den symbolske lenker som kommer over rekursiv kataloggjennomgang.
I Linux filsystem, er hver fil assosiert med en bestemt eier og har tillatelsestilgang for forskjellige brukere. Brukerklassene kan være:
- Eieren
- gruppemedlem
- Andre (alle andre)
Filtillatelsene i Linux er følgende tre typer:
- les (r)
- skriv (w)
- utføre (x)
Kort historie om Chmod
Først er chmod-kommandoen representert i AT&T UNIX versjon 1 med chmod-systemkallet. Tilgangskontrolllistene ble inkludert i flere filsystemer i inkludering av disse vanligste modusene for å øke fleksibiliteten fordi systemene vokste i typer og et antall brukere.
Chmod-versjonen arrangert i GNU-coreutils ble spesifisert av Jim Meyering og David MacKenzie. Denne kommandoen er til stede som en isolert pakke for Microsoft Windows som et element i UnxUtils native Win32-portsamling av grunnleggende GNU Unix-lignende verktøy. Dessuten er chmod-kommandoen sendt til IBM i OS.
La oss se hvordan du endrer filtillatelsen ved å bruke chmod-kommandoen.
Syntaks:
for loop in shell-skript
Den grunnleggende syntaksen til chmod-kommandoen er som følger:
chmod
Generelt implementerte alternativer er:
Målobjektet påvirkes hvis en symbolsk lenke nevnes. Filmoduser relatert til symbolske lenker direkte brukes ikke vanligvis.
Den primære komponenten i chmod-tillatelsen:
For eksempel, rwxr-x---
Alle grupper på tre tegn spesifiserer tillatelser for alle klasser:
Alternativer:
chmod-kommandoen støtter følgende kommandolinjealternativer:
-c, --endringer: Det ligner på det verbose alternativet, men forskjellen er at det rapporteres om en endring er gjort.
-f, --stille, --stille: Den brukes til å undertrykke feilmeldingene.
de tidlige mukere
-v, --verbose: Den brukes til å vise en diagnostikk for hver behandlet fil.
--no-preserve-root: Den brukes for ikke å behandle bakstreksymbolet ('/'), spesielt (standard).
--preserve-root: Hvis dette alternativet brukes, vil det ikke fungere rekursivt på omvendt skråstrek ('/').
--referanse=RFIL: Den brukes til å spesifisere RFILEs modus alternativt MODE-verdier.
-R, --rekursiv: Den brukes til å endre filer og kataloger rekursivt.
--hjelp: Den brukes til å vise hjelpemanualen med en kort beskrivelse av bruk og støttealternativer.
--versjon: Den brukes til å vise versjonsinformasjonen.
Syntaks for filtillatelse
Hvis du er en ny bruker, kan du bli forvirret med de forskjellige typene bokstaver som brukes til å angi filtillatelsen. Så før vi fortsetter videre med chmod-kommandoen, la oss forstå filtillatelsessyntaksen.
For å angi tillatelsen til en fil eller katalog, må vi spesifisere følgende ting:
- Hvem: Hvem er vi. (bruker)
- Hva: Hvilken endring skal vi gjøre (som å legge til eller fjerne tillatelsen)?
- Hvilken: Hvilken av tillatelsene?
Tillatelseserklæringen er representert i indikatorer som u+x, u-x. Der 'u' står for 'bruker', '+' står for add, '-' står for remove, 'x' står for kjørbar (som).
java matematikk klasse
Brukerverdien kan være:
u: eieren av filen
g: gruppemedlem
o: andre
a: alle
Tillatelsestypene kan være r, w og x.
Innstilling og oppdatering av tillatelser
For å angi tillatelsen til en fil, utfør en tillatelseserklæring med chmod-kommandoen. For eksempel ønsker vi å angi lese- og skrivetillatelsen for alle brukere og grupper av filen 'Demo.txt'. Vi må sende 'u=rw,go=rw Demo.txt' tillatelseserklæringen med chmod-kommandoen. For å vise filtillatelsen, kjør kommandoen nedenfor:
ls -l Demo.txt
Kommandoen ovenfor vil vise filens gjeldende filtillatelse for 'Demo.txt'-filen.
For å endre tillatelsen, kjør kommandoen nedenfor:
chmod u=rw,go=rw Demo.txt
Tenk på utgangen nedenfor:
Fra utdataene ovenfor er tilgangstillatelsen til 'Demo.txt' endret.
Angi tillatelser for flere filer
Vi kan angi tillatelse for flere filer samtidig ved å bruke chmod-kommandoen. For å endre filtillatelsen til flere filer, spesifiser filmønsteret med chmod-kommandoen. For eksempel, hvis vi ønsker å angi lese- og skrivetillatelse for alle tekstfiler, spesifiser *. txt-mønster med chmod-kommandoen.
For å se tillatelsen til all tekstfil fra gjeldende arbeidskatalog, kjør kommandoen nedenfor:
ls -l *.txt
Den vil liste alle tekstfilene med deres tillatelsesmodus. Tenk på utgangen nedenfor:
hrithik roshan
Fra utdataene ovenfor har mange filer kun lesetillatelse for andre brukere.
For å angi lese- og skrivetillatelsen for andre brukere, kjør kommandoen nedenfor:
chmod o+w *.txt
Den vil angi lese- og skrivetillatelsen for andre brukere av tekstfilene. Tenk på utgangen nedenfor:
Numerisk stenografi
Vi kan bruke numeriske verdier i stedet for bokstaver for å spesifisere tillatelsene. En tresifret verdi brukes til å spesifisere tillatelsen. Sifferet lengst til venstre representerer eieren (u), og det midterste sifferet representerer gruppemedlemmene (g). Sifferet lengst til høyre representerer de andre (o).
Følgende tabell representerer sifrene og deres tillatelser:
Sifre | Tillatelser |
---|---|
000 | Ingen tillatelse |
001 | Utfør tillatelse |
010 | Skrive tillatelse |
011 | Skrive og utføre tillatelser |
100 | Lese tillatelse |
101 | Les og utfør tillatelser |
110 | Lese- og skrivetillatelser |
111 | Les, skriv og utfør tillatelser |
Symboliske moduser
Dessuten aksepterer chmod-kommandoen den finere symbolske notasjonen, som tillater endring av spesifikke moduser. Den symbolske modusen består av tre elementer, som er slått sammen for å danne en enkelt tekststreng:
$ chmod [references] [operator] [modes] file...
chmod-programmet bruker en operatør for å definere hvordan filmodusene skal ordnes. Følgende operatører er godkjent:
Operatør | Beskrivelse | |
---|---|---|
+ | Den legger det beskrevne til de beskrevne klassene. | |
- | Den fjerner den beskrevne modusen fra de beskrevne klassene. | |
= | Det representerer at de beskrevne modusene skal lages de samme modusene for de beskrevne klassene. |
Modusene representerer hvilke tillatelser som skal fjernes eller gis fra de beskrevne klassene. Det er hovedsakelig tre vanlige moduser som er relatert til de vanlige tillatelsene:
Navn | Modus | Beskrivelse |
---|---|---|
lese | r | Den leser en fil eller viser innholdet i en katalog. |
skrive | I | Den skriver til en katalog eller fil. |
henrette | x | Den gjenoppretter et katalogtre eller kjører en fil. |
spesiell utførelse | X | Det er ikke tillatelse, men kan brukes i stedet for x. Den bruker utføringstillatelsene for kataloger til tross for deres nåværende tillatelser og bruker utføringstillatelsene for en fil som har minst et sett med utføringstillatelser. Det er nyttig hvis det brukes med '+'-operatoren og uten å angi utførelsestillatelsen som ville skje hvis vi bare brukte chmod -R a+rx ., mens vi kan implementere chmod -R a+rx . med x heller. |
Flere modifikasjoner kan beskrives ved å isolere flere symbolske moduser sammen med kommaer. chmod-kommandoen vil inspisere umask hvis en bruker ikke er spesifisert.
Spesielle moduser
Dessuten kan chmod-kommandoen endre spesialmodusene og ekstra tillatelsene til en katalog eller fil. De symbolske modusene bruker 's' for å indikere setgid- og setuid-modusene og 't' for å indikere sticky-modusen. En modus brukes kun for de riktige klassene, til tross for om andre klasser er nevnt eller ikke.
Nesten alle operativsystemer støtter numerisk spesialmodusspesifikasjonen, spesielt i oktal, men noen få gjør det ikke. Bare de symbolske modusene kan brukes på disse systemene.
Noen eksempler på kommandolinjen:
Kommando | Beskrivelse |
---|---|
chmod a+r publicComments.txt | Den vil legge til lesetillatelsen for hver klasse (dvs. gruppe, eier og andre). |
chmod a-x publicComments.txt | Det vil fjerne utføringstillatelsen for hver klasse. |
chmod a+rx viewer.sh | Det vil legge til kjøre- og lesetillatelser for hver klasse. |
chmod u=rw, g=r, o=internalPlan.txt | Den vil angi skrive- og lesetillatelser for brukeren, ser lese for gruppe og avvise tilgang for andre. |
chmod -R u+w, go-w docs | Den vil inkludere skrivetillatelsen i katalogdokumentene og hvert av innholdet for eieren og sletter skrivetillatelsen for andre og gruppen. |
chmod and=rw groupAgreements.txt | Den vil angi skrive- og lesetillatelser for gruppe og bruker. |
chmod 664 global.txt | Den vil angi skrive- og lesetillatelsene for gruppen og brukeren og gir lesetillatelsen til andre. |
chmod 744 Show_myCV.sh | Den vil angi kjøre-, skrive- og lesetillatelser for brukeren og gir lesetillatelsen til Group and Others. |