logo

Chmod-kommando i Linux/Unix med eksempler

Linux chmod kommando bruges til at ændre adgangstilladelserne til filer og mapper. Det står for skifte tilstand . Det kan ikke ændre tilladelsen til symbolske links. Selv ignorerer den de symbolske links, der støder på rekursiv mappegennemgang.

I den Linux filsystem, er hver fil tilknyttet en bestemt ejer og har tilladelsesadgang for forskellige brugere. Brugerklasserne kan være:

  • ejer
  • gruppemedlem
  • Andre (alle andre)

Filtilladelserne i Linux er følgende tre typer:

  • læs (r)
  • skriv (w)
  • udføre (x)

Kort historie om Chmod

Først er chmod-kommandoen repræsenteret i AT&T UNIX version 1 med chmod-systemkaldet. Adgangskontrollisterne blev inkluderet i adskillige filsystemer i forbindelse med disse mest almindelige tilstande for at øge fleksibiliteten, fordi systemerne voksede i typer og et antal brugere.

Chmod-versionen arrangeret i GNU coreutils blev specificeret af Jim Meyering og David MacKenzie. Denne kommando er til stede som en isoleret pakke til Microsoft Windows som et element i UnxUtils native Win32-portsamling af grundlæggende GNU Unix-lignende hjælpeprogrammer. Også chmod-kommandoen er blevet sendt til IBM i OS.

Lad os se, hvordan du ændrer filtilladelsen ved hjælp af chmod-kommandoen.

Syntaks:

til loop in shell-script

Den grundlæggende syntaks for chmod-kommandoen er som følger:

 chmod 

Generelt implementerede muligheder er:

    -R:Det står for rekursiv, dvs. tilføje objekter til undermapper.-I:Det står for verbose, display objects modified (umodificerede objekter vises ikke).

Målobjektet påvirkes, hvis et symbolsk link nævnes. Filtilstande, der er direkte relateret til symbolske links, bruges ikke typisk.

Den primære komponent af chmod-tilladelsen:

For eksempel, rwxr-x---

Alle grupper på tre tegn angiver tilladelser for alle klasser:

    rwx:De tre tegn længst til venstre angiver tilladelser for filejeren (dvs. brugerklassen).r-x:De tre midterste tegn angiver tilladelser for den gruppe, der ejer filen (dvs. gruppeklassen).---:De tre tegn længst til højre angiver tilladelser for klassen Andet. Brugere, der ikke er filens ejer og gruppemedlemmer, kan ikke få adgang til filen.

Muligheder:

chmod-kommandoen understøtter følgende kommandolinjeindstillinger:

-c, --ændringer: Det ligner den verbose mulighed, men forskellen er, at det rapporteres, hvis der er foretaget en ændring.

-f, --stille, --stille: Det bruges til at undertrykke fejlmeddelelserne.

de tidlige mukere

-v, --verbose: Det bruges til at vise en diagnostik for hver behandlet fil.

--no-preserve-root: Det bruges til ikke at behandle omvendt skråstreg-symbolet ('/'), især (standard).

--bevar-rod: Hvis denne mulighed bruges, vil den ikke fungere rekursivt på omvendt skråstreg ('/').

--reference=RFIL: Den bruges til at specificere RFILE's tilstand alternativt MODE værdier.

-R, --rekursiv: Det bruges til at ændre filer og mapper rekursivt.

--Hjælp: Den bruges til at vise hjælpemanualen med en kort beskrivelse af brug og supportmuligheder.

--version: Det bruges til at vise versionsoplysningerne.

Syntaks for filtilladelse

Hvis du er en ny bruger, kan du blive forvirret med de forskellige typer bogstaver, der bruges til at indstille filtilladelsen. Så før vi går videre med chmod-kommandoen, lad os forstå filtilladelsens syntaks.

For at indstille tilladelsen til en fil eller et bibliotek, skal vi angive følgende ting:

  • Hvem: Hvem er vi. (bruger)
  • Hvad: Hvilken ændring skal vi lave (såsom tilføjelse eller fjernelse af tilladelsen)?
  • Hvilken: Hvilken af ​​tilladelserne?

Tilladelseserklæringen er repræsenteret i indikatorer som u+x, u-x. Hvor 'u' står for 'bruger', '+' står for tilføje, '-' står for fjern, 'x' står for eksekverbar (som).

java matematik klasse

Brugerværdien kan være:

u: ejeren af ​​filen

g: gruppemedlem

o: andre

a: alle

Tilladelsestyperne kan være r, w og x.

Indstilling og opdatering af tilladelser

For at indstille tilladelsen til en fil skal du udføre en tilladelseserklæring med kommandoen chmod. For eksempel ønsker vi at indstille læse- og skrivetilladelsen for alle brugere og grupper af filen 'Demo.txt'. Vi skal videregive tilladelsen 'u=rw,go=rw Demo.txt' med chmod-kommandoen. For at vise filtilladelsen skal du udføre kommandoen nedenfor:

 ls -l Demo.txt 

Ovenstående kommando vil vise filens aktuelle filtilladelse til filen 'Demo.txt'.

For at ændre tilladelsen skal du udføre kommandoen nedenfor:

 chmod u=rw,go=rw Demo.txt 

Overvej nedenstående output:

Linux chmod kommando

Fra ovenstående output er adgangstilladelsen til 'Demo.txt' ændret.

Indstilling af tilladelser for flere filer

Vi kan indstille tilladelse til flere filer på én gang ved at bruge chmod-kommandoen. For at ændre filtilladelsen for flere filer skal du angive filmønsteret med kommandoen chmod. For eksempel, hvis vi ønsker at indstille læse- og skrivetilladelse for alle tekstfiler, skal du angive *. txt-mønster med chmod-kommandoen.

For at se tilladelsen til al tekstfil fra den aktuelle arbejdsmappe skal du udføre kommandoen nedenfor:

 ls -l *.txt 

Det vil vise alle tekstfilerne med deres tilladelsestilstand. Overvej nedenstående output:

computer opfundet år
Linux chmod kommando

Fra ovenstående output har mange filer kun læsetilladelse for andre brugere.

For at indstille læse- og skrivetilladelsen for andre brugere skal du udføre kommandoen nedenfor:

 chmod o+w *.txt 

Det vil indstille læse- og skrivetilladelsen for andre brugere af tekstfilerne. Overvej nedenstående output:

Linux chmod kommando

Numerisk stenografi

Vi kan bruge de numeriske værdier i stedet for bogstaver til at angive tilladelserne. En trecifret værdi bruges til at angive tilladelsen. Cifferet længst til venstre repræsenterer ejeren (u), og det midterste ciffer repræsenterer gruppemedlemmerne (g). Cifferet længst til højre repræsenterer de andre (o).

Følgende tabel repræsenterer cifrene og deres tilladelser:

Cifre Tilladelser
000 Ingen tilladelse
001 Udfør tilladelse
010 Skrivetilladelse
011 Skrive og udføre tilladelser
100 Læsetilladelse
101 Læs og eksekver tilladelser
110 Læse- og skrivetilladelser
111 Læs, skriv og eksekver tilladelser

Symbolske tilstande

Også chmod-kommandoen accepterer den finere symbolske notation, som tillader ændring af specifikke tilstande. Den symbolske tilstand består af tre elementer, som er slået sammen til en enkelt tekststreng:

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

chmod-programmet anvender en operator til at definere, hvordan filtilstandene skal arrangeres. Nedenstående operatører er godkendt:

Operatør Beskrivelse
+ Det føjer det beskrevne til de beskrevne klasser.
- Det fjerner den beskrevne tilstand fra de beskrevne klasser.
= Det repræsenterer, at de beskrevne tilstande skal skabes de samme tilstande for de beskrevne klasser.

Tilstandene repræsenterer, hvilke tilladelser der skal fjernes eller gives fra de beskrevne klasser. Der er hovedsageligt tre almindelige tilstande, der er relateret til de almindelige tilladelser:

Navn Mode Beskrivelse
Læs r Den læser en fil eller viser indholdet af en mappe.
skrive I Den skriver til en mappe eller fil.
udføre x Det gentager et mappetræ eller udfører en fil.
særlig udføre x Det er ikke tilladelse, men kan i stedet bruges i stedet for x. Den bruger udførelsestilladelserne til mapper på trods af deres nuværende tilladelser og bruger udførelsestilladelserne for en fil, der har mindst et udførelsestilladelses-bitsæt. Det er nyttigt, hvis det bruges med '+'-operatoren og uden at indstille execute-tilladelsen, hvilket ville ske, hvis vi bare brugte chmod -R a+rx ., hvorimod vi kan implementere chmod -R a+rx . med x snarere.

Flere modifikationer kan beskrives ved at isolere flere symbolske tilstande sammen med kommaer. chmod kommandoen vil inspicere umask hvis en bruger ikke er angivet.

Særlige tilstande

Også chmod-kommandoen kan ændre de specielle tilstande og ekstra tilladelser for en mappe eller fil. De symbolske tilstande anvender 's' for at angive setgid- og setuid-tilstandene og 't' for at angive sticky-tilstanden. En tilstand bruges kun til de korrekte klasser, uanset om andre klasser er nævnt eller ej.

Næsten alle operativsystemer understøtter numerisk den specielle tilstandsspecifikation, specifikt i oktal, men nogle få gør det ikke. Kun de symbolske tilstande kan anvendes på disse systemer.

Nogle eksempler på kommandolinjen:

Kommando Beskrivelse
chmod a+r publicComments.txt Det tilføjer læsetilladelsen for hver klasse (dvs. gruppe, ejer og andre).
chmod a-x publicComments.txt Det vil fjerne udførelsestilladelsen for hver klasse.
chmod a+rx viewer.sh Det vil tilføje udførelses- og læsetilladelser for hver klasse.
chmod u=rw, g=r, o=internalPlan.txt Den indstiller skrive- og læsetilladelser for brugeren, ser read for Group og afviser adgang for andre.
chmod -R u+w, go-w docs Det vil inkludere skrivetilladelsen i mappedokumenterne og hvert af dets indhold for ejeren og sletter skrivetilladelsen for andre og gruppen.
chmod and=rw groupAgreements.txt Det vil indstille skrive- og læsetilladelserne for gruppe og bruger.
chmod 664 global.txt Den indstiller skrive- og læsetilladelserne for gruppe og bruger og giver læsetilladelsen til andre.
chmod 744 Show_myCV.sh Den indstiller udførelses-, skrive- og læsetilladelserne for brugeren og giver læsetilladelsen til gruppe og andre.