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