Kaip naudoti „chmod“ komandą „Linux“

Valdykite, kas gali pasiekti failus, ieškoti katalogų ir paleisti scenarijus naudodamasis „Linux“ chmodkomanda. Ši komanda keičia „Linux“ failų teises, kurios iš pirmo žvilgsnio atrodo sudėtingos, bet iš tikrųjų yra gana paprastos, kai žinai, kaip jos veikia.

chmod modifikuoja failo teises

„Linux“ sistemoje kas gali padaryti failą ar katalogą, jis valdomas per leidimų rinkinius. Yra trys leidimų rinkiniai. Vienas rinkinys failo savininkui, kitas rinkinys failo grupės nariams ir galutinis rinkinys visiems kitiems.

Leidimai kontroliuoja veiksmus, kuriuos galima atlikti faile ar kataloge. Jie arba leidžia, arba neleidžia failui skaityti, modifikuoti arba, jei tai scenarijus ar programa, vykdyti. Katalogo leidimai reglamentuoja, kas gali cdpatekti į katalogą ir kas gali kurti ar modifikuoti failus kataloge.

chmod Kiekvienam iš šių teisių nustatykite naudodami  komandą. Norėdami sužinoti, kokie leidimai buvo nustatyti faile ar kataloge, galime naudoti ls.

Failų leidimų peržiūra ir supratimas

Galime naudoti -l(ilgo formato) parinktį, kad galėtume lsišvardyti failų ir katalogų failų teises.

ls -l

Kiekvienoje eilutėje pirmasis simbolis nurodo sąrašo įrašo tipą. Jei tai yra brūkšnys ( -), tai yra failas. Jei tai raidė, d tai yra katalogas.

Kiti devyni simboliai rodo trijų leidimų rinkinių nustatymus.

  • Pirmieji trys simboliai rodo vartotojo, kuriam priklauso failas, teises ( vartotojo teises ).
  • Trys viduriniai simboliai rodo failo grupės narių teises ( grupės teises ).
  • Paskutiniai trys simboliai rodo leidimus tiems, kurie nepriklauso pirmosioms dviem kategorijoms ( kiti leidimai ).

Kiekviename leidimų rinkinyje yra trys simboliai. Simboliai yra vieno iš leidimų buvimo ar nebuvimo rodikliai. Jie yra arba brūkšnys ( -), arba raidė. Jei simbolis yra brūkšnys, tai reiškia, kad leidimas nėra suteikiamas. Jei simbolis yra r, w, arba x, kad leidimas buvo išduotas.

Laiškai reiškia:

  • r : Skaitymo leidimai. Failą galima atidaryti ir peržiūrėti jo turinį.
  • w : rašymo leidimai. Failą galima redaguoti, modifikuoti ir ištrinti.
  • x : vykdyti leidimus. Jei failas yra scenarijus ar programa, jį galima paleisti (vykdyti).

Pavyzdžiui:

  •  --- reiškia, kad jokie leidimai nebuvo suteikti.
  •  rwxreiškia, kad suteikti visi leidimai. Pateikti skaitymo, rašymo ir vykdymo rodikliai.

Mūsų ekrano kopijoje pirmoji eilutė prasideda a d. Ši eilutė nurodo katalogą, vadinamą „archyvas“. Katalogo savininkas yra „dave“, o grupės, kuriai priklauso katalogas, pavadinimas taip pat vadinamas „dave“.

Kiti trys simboliai yra šio katalogo vartotojo teisės. Tai rodo, kad savininkas turi visus leidimus. Į r, wir xpersonažai yra visi dabar. Tai reiškia, kad vartotojas Dave'as skaitė, rašė ir vykdė šio katalogo teises.

Antrasis trijų simbolių rinkinys yra grupės leidimai r-x. Tai rodo, kad „Dave“ grupės nariai perskaitė ir vykdo šio katalogo teises. Tai reiškia, kad jie gali kataloge išvardyti failus ir jų turinį, ir jie gali cd(vykdyti) į tą katalogą. Jie neturi rašymo leidimų, todėl negali kurti, redaguoti ar ištrinti failų.

Galutinis trijų simbolių rinkinys taip pat yra  r-x. Šie leidimai taikomi žmonėms, kuriems netaikomi pirmieji du leidimų rinkiniai. Šie žmonės (vadinami „kitais“) perskaitė ir vykdė leidimus šiame kataloge.

Taigi, apibendrinant, grupės nariai ir kiti žmonės perskaitė ir vykdė leidimus. Savininkas, vartotojas, vadinamas Dave'u, taip pat turi rašymo teises.

Visiems kitiems failams (išskyrus scenarijaus failą mh.sh) Dave'as ir „Dave“ grupės nariai skaitė ir rašė failų ypatybes, o kiti turi tik skaitymo teises.

Ypatingu scenarijaus failo mh.sh atveju savininkas Dave'as ir grupės nariai skaitė, rašė ir vykdė leidimus, o kiti - tik skaitymo ir vykdymo leidimus.

Supratimas apie leidimų sintaksę

Norėdami chmod nustatyti leidimus, turime tai pasakyti:

  • Kas:  kam mes nustatome leidimus.
  • : kokį pakeitimą darome? Ar pridedame ar pašaliname leidimą?
  • Kuris : kuriuos iš leidimų mes nustatome?

Mes naudojame rodiklius šioms reikšmėms atspindėti ir formuojame trumpus „leidimų pareiškimus“, pvz. u+x, Kur „u“ reiškia „vartotojas“ (kas), „+“ reiškia pridėti (ką) ir „x“ reiškia leidimą vykdyti (kuris) .

„Kas“ vertybės, kurias galime naudoti, yra:

  • u : vartotojas, reiškiantis failo savininką.
  • g : grupė, tai reiškia grupės nariai, kuriems priklauso failas.
  • o : Kiti, reiškiantys žmones, kurių nevaldo uir gleidimai.
  • a : Viskas, turint omenyje visa tai, kas aukščiau.

Jei nė vienas iš jų nenaudojamas, chmodelgiasi taip, lyg būtų naudojamas „ a“.

„Ką“ vertės, kurias galime naudoti, yra:

  • - : Minuso ženklas. Pašalinamas leidimas.
  • + : Pliuso ženklas. Suteikia leidimą. Leidimas pridedamas prie esamų leidimų. Jei norite gauti šį leidimą ir nustatyti tik šį leidimą, naudokite toliau =aprašytą parinktį.
  • = : Lygybės ženklas. Nustatykite leidimą ir pašalinkite kitus.

„Kurias“ vertes galime naudoti:

  • r : leidimas skaityti.
  • w : rašymo leidimas.
  • x : vykdyti leidimą.

Leidimų nustatymas ir keitimas

Tarkime, kad turime failą, kuriame visi turi visas jo teises.

ls -l naujas_ failas.txt

Mes norime, kad vartotojas drąsiai turėtų skaitymo ir rašymo leidimus, o grupė ir kiti vartotojai - tik skaitymo leidimus. Mes galime tai padaryti naudodami šią komandą:

chmod u = rw, og = r new_file.txt

Naudojant operatorių „=“, mes ištriname visus esamus leidimus ir tada nustatome nurodytus.

patikrinkime naują leidimą šiame faile:

ls -l new_file.txt

Esami leidimai buvo pašalinti ir nauji leidimai nustatyti, kaip tikėjomės.

Kaip apie pridedant leidimą be pašalinti esamus leidimų nustatymus? Mes taip pat galime tai lengvai padaryti.

Tarkime, kad turime scenarijaus failą, kurį baigėme redaguoti. Turime padaryti jį vykdomą visiems vartotojams. Dabartiniai jo leidimai atrodo taip:

ls -l new_script.sh

Mes galime pridėti vykdymo leidimą visiems naudodami šią komandą:

chmod a + x new_script.sh

Pažvelgę ​​į leidimus, pamatysime, kad leidimas vykdyti dabar suteikiamas visiems, o esami leidimai vis dar yra.

ls -l new_script.sh

Tą patį galėjome pasiekti ir be „a“ sakinyje „a + x“. Ši komanda būtų veikusi taip pat gerai.

chmod + x new_script.sh

Kelių failų leidimų nustatymas

Mes galime vienu metu taikyti leidimus keliems failams.

Šie failai yra dabartiniame kataloge:

ls -l

Tarkime, kad norime pašalinti „kitų“ vartotojų rašymo teises iš failų, turinčių „.page“ plėtinį. Tai galime padaryti naudodami šią komandą:

chmod arba * .page

Patikrinkime, kokį poveikį tai padarė:

ls -l

Kaip matome, skaitymo leidimas buvo pašalintas iš „.page“ failų „kitų“ kategorijos vartotojams. Jokių kitų failų tai nepaveikė.

Jei būtume norėję įtraukti failus į pakatalogius, galėjome naudoti -R(rekursyvų) parinktį.

chmod -R arba * .puslapis

Skaitmeninis trumpinis

Kitas naudojimo būdas chmodyra suteikti teises, kurias norite suteikti savininkui, grupei ir kitiems kaip trijų skaitmenų skaičių. Kairiausias skaitmuo nurodo savininko leidimus. Vidurinis skaitmuo nurodo grupės narių leidimus. Dešinysis dešinysis skaitmuo reiškia kitų leidimus.

Skaitmenys, kuriuos galite naudoti, ir tai, ką jie reiškia, išvardyti čia:

  • 0: (000) Nėra leidimo.
  • 1: (001) Vykdyti leidimą.
  • 2: (010) Rašymo leidimas.
  • 3: (011) Rašyti ir vykdyti leidimus.
  • 4: (100) Skaitymo leidimas.
  • 5: (101) Skaityti ir vykdyti leidimus.
  • 6: (110) Skaitymo ir rašymo leidimai.
  • 7: (111) Skaitymo, rašymo ir vykdymo leidimai.

Kiekvieną iš trijų leidimų žymi vienas iš dešimtainio skaičiaus dvejetainio ekvivalento bitų. Taigi 5, kuris yra 101 dvejetainis, reiškia skaityti ir vykdyti. 2, kuris yra dvejetainis skaičius 010, reikštų leidimą rašyti.

Naudodamiesi šiuo metodu, nustatote norimas teises; nepridedate šių leidimų prie esamų leidimų. Taigi, jei skaitymo ir rašymo leidimai jau buvo, turėtumėte naudoti 7 (111), kad pridėtumėte vykdymo teises. Naudojant 1 (001) būtų panaikinti skaitymo ir rašymo leidimai ir pridėtas vykdymo leidimas.

Pridėkime skaitymo leidimą atgal į kitų kategorijų vartotojų „.page“ failus. Mes taip pat turime nustatyti vartotojo ir grupės leidimus, todėl turime juos nustatyti tokius, kokie jie jau yra. Šie vartotojai jau turi skaitymo ir rašymo teises, tai yra 6 (110). Mes norime, kad „kiti“ turėtų skaitymo ir leidimus, todėl jiems reikia nustatyti 4 (100).

Tai atliks ši komanda:

chmod 664 * .p

Tai nustato naudotojui, grupės nariams ir kitiems reikalingus leidimus tam, ko mums reikia. Vartotojams ir grupės nariams nustatomi ankstesni leidimai, o kitiems - skaitymo leidimas.

ls -l

Išplėstiniai nustatymai

Perskaitę vyro puslapį chmodpamatysite, kad yra keletas išplėstinių parinkčių, susijusių su bitais „SETUID“ ir „SETGID“ bei ribotu ištrynimu arba „lipniu“ bitu.

99% atvejų, kurių jums prireiks chmod, jums bus suteiktos čia aprašytos parinktys.