logo

Chmod-kommando i Linux/Unix med eksempler

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:

    -R:Det står for rekursivt, dvs. legg til objekter i underkataloger.-I:Det står for verbose, display-objekter endret (umodifiserte objekter vises ikke).

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:

    rwx:De tre tegnene lengst til venstre spesifiserer tillatelser for fileieren (dvs. brukerklassen).r-x:De tre midterste tegnene spesifiserer tillatelser for gruppen som eier filen (dvs. gruppeklassen).---:De tre tegnene lengst til høyre spesifiserer tillatelser for klassen Andre. Brukere som ikke er fileier og gruppemedlemmer, har ikke tilgang til filen.

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:

Linux chmod kommando

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
Linux chmod kommando

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:

Linux chmod kommando

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.