logo

Ukaz Chmod v Linuxu/Unixu s primeri

Ukaz Linux chmod se uporablja za spreminjanje dovoljenj za dostop do datotek in imenikov. To pomeni spremeni način . Ne more spremeniti dovoljenja za simbolične povezave. Celo ignorira simbolne povezave, ki naletijo na rekurzivno prečkanje imenika.

V Linux datotečni sistem, je vsaka datoteka povezana z določenim lastnikom in ima dovoljenje za dostop za različne uporabnike. Uporabniški razredi so lahko:

  • lastnik
  • član skupine
  • Drugi (Vsi drugi)

Dovoljenja za datoteke v Linuxu so naslednje tri vrste:

  • preberi (r)
  • pisati (w)
  • izvršiti (x)

Kratka zgodovina Chmoda

Prvič, ukaz chmod je v različici 1 AT&T UNIX predstavljen s sistemskim klicem chmod. Seznami za nadzor dostopa so bili vključeni v več datotečnih sistemov kot vključitev v te najpogostejše načine, da bi povečali prilagodljivost, ker so sistemi rasli v vrstah in številu uporabnikov.

Različico chmod, urejeno v GNU coreutils, sta določila Jim Meyering in David MacKenzie. Ta ukaz je prisoten kot izoliran paket za Microsoft Windows kot element izvorne zbirke vrat Win32 UnxUtils osnovnih pripomočkov, podobnih GNU Unixu. Poleg tega je bil ukaz chmod poslan v OS IBM i.

Poglejmo, kako spremeniti dovoljenje za datoteko z ukazom chmod.

Sintaksa:

so pevci

Osnovna sintaksa ukaza chmod je naslednja:

 chmod 

Na splošno uporabljene možnosti so:

    -R:To pomeni rekurzivno, tj. dodajanje predmetov v podimenike.-IN:Označuje podrobne, spremenjene prikazane objekte (nespremenjeni objekti niso prikazani).

Če je omenjena simbolna povezava, vpliva na ciljni objekt. Datotečni načini, povezani neposredno s samimi simbolnimi povezavami, se običajno ne uporabljajo.

Primarna komponenta dovoljenja chmod:

Na primer, rwxr-x---

Vse skupine treh znakov določajo dovoljenja za vse razrede:

    rwx:Skrajni levi trije znaki določajo dovoljenja za lastnika datoteke (tj. razred uporabnika).r-x:Trije srednji znaki določajo dovoljenja za skupino, ki je lastnik datoteke (tj. razred skupine).---:Trije skrajno desni znaki določajo dovoljenja za razred Drugo. Uporabniki, ki niso lastniki datoteke, in člani skupine ne morejo dostopati do datoteke.

Opcije:

Ukaz chmod podpira naslednje možnosti ukazne vrstice:

-c, --spremembe: Podobna je besedni možnosti, vendar je razlika v tem, da se sporoči, če je bila narejena sprememba.

-f, --tiho, --tiho: Uporablja se za zatiranje sporočil o napakah.

-v, --besedno: Uporablja se za prikaz diagnostike za vsako obdelano datoteko.

--no-preserve-root: Uporablja se za neobravnavo simbola poševnice nazaj ('/'), zlasti (privzeto).

--preserve-root: Če uporabite to možnost, ne bo delovala rekurzivno s poševnico nazaj ('/').

--reference=RFILE: Uporablja se za določitev načina RFILE ali vrednosti MODE.

-R, --rekurzivno: Uporablja se za rekurzivno spreminjanje datotek in imenikov.

--pomoč: Uporablja se za prikaz priročnika za pomoč s kratkim opisom možnosti uporabe in podpore.

bool v niz java

--različica: Uporablja se za prikaz informacij o različici.

Sintaksa dovoljenja za datoteko

Če ste nov uporabnik, vas lahko zmedejo različne vrste črk, ki se uporabljajo za nastavitev dovoljenja za datoteko. Torej, preden nadaljujemo z ukazom chmod, poglejmo sintakso dovoljenj za datoteke.

Če želite nastaviti dovoljenje za datoteko ali imenik, moramo določiti naslednje:

  • Kdo: Kdo smo. (uporabnik)
  • Kaj: Kakšno spremembo bomo naredili (na primer dodali ali odstranili dovoljenje)?
  • Katero: Katero od dovoljenj?

Izjava o dovoljenju je predstavljena v indikatorjih, kot sta u+x, u-x. Kjer 'u' pomeni 'uporabnik', '+' pomeni dodajanje, '-' pomeni odstranjevanje, 'x' pomeni izvršljivo datoteko (ki).

matriko v jeziku c

Uporabniška vrednost je lahko:

u: lastnik datoteke

g: član skupine

o: drugi

a: vse

Vrste dovoljenj so lahko r, w in x.

Nastavitev in posodabljanje dovoljenj

Če želite nastaviti dovoljenje za datoteko, izvedite stavek o dovoljenju z ukazom chmod. Na primer, želimo nastaviti dovoljenje za branje in pisanje za vse uporabnike in skupine datoteke 'Demo.txt.' Z ukazom chmod moramo posredovati izjavo o dovoljenju 'u=rw,go=rw Demo.txt'. Če želite prikazati dovoljenje za datoteko, izvedite spodnji ukaz:

 ls -l Demo.txt 

Zgornji ukaz bo prikazal trenutno dovoljenje za datoteko 'Demo.txt'.

Če želite spremeniti dovoljenje, izvedite spodnji ukaz:

 chmod u=rw,go=rw Demo.txt 

Razmislite o spodnjem rezultatu:

Ukaz chmod za Linux

Glede na zgornji rezultat se je dovoljenje za dostop do 'Demo.txt' spremenilo.

Nastavitev dovoljenj za več datotek

Z ukazom chmod lahko nastavimo dovoljenje za več datotek hkrati. Če želite spremeniti dovoljenje za več datotek, določite vzorec datoteke z ukazom chmod. Na primer, če želimo nastaviti dovoljenje za branje in pisanje za vse besedilne datoteke, podajte *. txt vzorec z ukazom chmod.

Če si želite ogledati dovoljenja za vse besedilne datoteke iz trenutnega delovnega imenika, izvedite spodnji ukaz:

 ls -l *.txt 

Navedel bo vse besedilne datoteke z njihovim načinom dovoljenja. Razmislite o spodnjem rezultatu:

Ukaz chmod za Linux

Iz zgornjega izhoda je razvidno, da ima veliko datotek samo dovoljenje za branje za druge uporabnike.

Če želite nastaviti dovoljenje za branje in pisanje za druge uporabnike, izvedite spodnji ukaz:

 chmod o+w *.txt 

Nastavil bo dovoljenje za branje in pisanje za druge uporabnike besedilnih datotek. Razmislite o spodnjem rezultatu:

Ukaz chmod za Linux

Numerična stenografija

Za določitev dovoljenj lahko namesto črk uporabimo številske vrednosti. Za določitev dovoljenja se uporablja trimestna vrednost. Skrajna leva številka predstavlja lastnika (u), srednja številka pa člane skupine (g). Skrajno desna številka predstavlja ostale (o).

Naslednja tabela predstavlja števke in njihova dovoljenja:

Številke Dovoljenja
000 Brez dovoljenja
001 Izvedi dovoljenje
010 Dovoljenje za pisanje
011 Dovoljenja za pisanje in izvajanje
100 Dovoljenje za branje
101 Dovoljenja za branje in izvajanje
110 Dovoljenja za branje in pisanje
111 Dovoljenja za branje, pisanje in izvajanje

Simbolni načini

Poleg tega ukaz chmod sprejema natančnejši simbolni zapis, ki omogoča spreminjanje določenih načinov. Simbolni način je sestavljen iz treh elementov, ki so združeni v en besedilni niz:

nekaj hitrega sortiranja
 $ chmod [references] [operator] [modes] file... 

Program chmod uporablja operator, da določi, kako naj bodo razporejeni datotečni načini. Spodnji operaterji so odobreni:

Operater Opis
+ Opisanim razredom doda opisano.
- Odstrani opisani način iz opisanih razredov.
= Predstavlja, da je treba opisane načine ustvariti enake načine za opisane razrede.

Načini predstavljajo, katera dovoljenja bodo odstranjena ali podeljena iz opisanih razredov. Obstajajo predvsem trije običajni načini, ki so povezani s skupnimi dovoljenji:

Ime Način Opis
prebrati r Prebere datoteko ali izpiše vsebino imenika.
pisati notri Zapisuje v imenik ali datoteko.
izvršiti x Rekurzira drevo imenikov ali izvede datoteko.
posebna izvedba X To ni dovoljenje, ampak ga je mogoče uporabiti namesto x. Uporablja dovoljenja za izvajanje za imenike kljub njihovim trenutnim dovoljenjem in uporablja dovoljenja za izvajanje za datoteko, ki ima nastavljen vsaj en bit za dovoljenja za izvajanje. Koristno je, če ga uporabljamo z operatorjem '+' in brez nastavitve dovoljenja za izvajanje, kar bi se zgodilo, če bi uporabili samo chmod -R a+rx ., medtem ko lahko implementiramo chmod -R a+rx . z x raje.

Več sprememb je mogoče opisati z izolacijo več simbolnih načinov skupaj z vejicami. Ukaz chmod bo pregledal umask če uporabnik ni naveden.

Posebni načini

Poleg tega lahko ukaz chmod spremeni posebne načine in dodatna dovoljenja za imenik ali datoteko. Simbolni načini uporabljajo 's' za označevanje načina setgid in setuid ter 't' za označevanje lepljivega načina. Način se uporablja samo za pravilne razrede, ne glede na to, ali so drugi razredi omenjeni ali ne.

Skoraj vsi operacijski sistemi številčno podpirajo specifikacijo posebnega načina, zlasti v oktalnem jeziku, nekateri pa ne. Za te sisteme je mogoče uporabiti samo simbolične načine.

Nekaj ​​primerov ukazne vrstice:

Ukaz Opis
chmod a+r publicComments.txt Dodal bo dovoljenje za branje za vsak razred (tj. skupino, lastnika in druge).
chmod a-x publicComments.txt Odstranil bo dovoljenje za izvajanje za vsak razred.
chmod a+rx viewer.sh Dodal bo dovoljenja za izvajanje in branje za vsak razred.
chmod u=rw, g=r, o=notranjiPlan.txt Nastavil bo dovoljenja za pisanje in branje za uporabnika, ser za branje za skupino in zavrnil dostop za druge.
chmod -R u+w, go-w dokumenti Vključil bo dovoljenje za pisanje v imenik dokumentov in vsako njegovo vsebino za lastnika ter izbrisal dovoljenje za pisanje za druge in skupino.
chmod in=rw groupAgreements.txt Nastavil bo dovoljenja za pisanje in branje za skupino in uporabnika.
chmod 664 global.txt Nastavil bo dovoljenja za pisanje in branje za skupino in uporabnika ter dal dovoljenje za branje drugim.
chmod 744 Pokaži_mojCV.sh Nastavil bo dovoljenja za izvajanje, pisanje in branje za uporabnika ter dal dovoljenje za branje skupini in drugim.