Per pastaruosius kelis mėnesius aš lankiau Linux, o vienas Linux aspektas, kuris mane visada supainiojo, buvo tai, kaip leidimai veikė. Pavyzdžiui, kai vieną kartą įkeliate failą į savo interneto serverį ir gavau klaidą, mano žiniatinklio prieglobos man pasakė, kad reikia pakeisti failo leidimus į 755.
Aš neturėjau jokių raktų, ką tai reiškė, nors pakeitus leidimus problema buvo išspręsta. Dabar supratau, kad „Linux“ leidimai nėra taip sudėtingi, jūs tiesiog turite suprasti sistemą. Šiame straipsnyje kalbėsiu apie „Linux“ leidimus aukštu lygiu ir parodysiu, kaip naudoti komandą „chmod“, kad pakeistumėte failų ir aplankų teises.
Linux leidimai ir lygiai
Linux sistemoje iš esmės yra trys leidimai, kuriuos paprastai turėsite nerimauti: skaityti, rašyti ir vykdyti. Visi trys iš jų yra gana savaime suprantami. Dabar, kai šie leidimai taikomi failui, jie taikomi lygiais.
„Linux“ yra trys leidimų lygiai: savininkas, grupė ir kita. Savininkas yra vartotojas, kuriam priklauso failas / aplankas, grupėje yra ir kitų naudotojų failų grupėje, o kiti tiesiog atstovauja visiems kitiems naudotojams, kurie nėra savininkas arba grupė.
Skaitymas, rašymas ir vykdymas pateikiami kaip simboliniai simboliai arba kaip aštuoni skaičiai. Pavyzdžiui, jei jūs atliksite ls-l katalogą su kai kuriais failais, pamatysite simbolių simbolių vaizdą.
Leidimai rašomi taip: pirmasis bitas yra brūkšnys arba raide d. Dash reiškia, kad jis yra failas ir d reiškia katalogą. Atkreipkite dėmesį, kad pirmasis bitas taip pat gali būti l, jei failo pavadinimas yra nuoroda. Toliau yra trys trys bitų grupės. Pirmoji bitų grupė kiekvienai grupei skirta skaityti, antrasis bitas skirtas rašyti, o trečiasis - vykdomas. Pirmieji trys bitai skirti savininkui, antrieji trys bitai yra skirti grupei, o trys trys bitai skirti kitiems. Štai daugiau vizualaus paaiškinimo.
Jei vietoj raidės matote brūkšnį, tai reiškia, kad savininkas, grupė ar visi kiti vartotojai neturi tokio leidimo. Pirmiau pateiktame pavyzdyje savininkas, grupė ir visi kiti skaitė rašymo ir vykdymo teises.
Jei pažvelgsite į komandą ls -l išvestį, pastebėsite, kad mano praktikos teksto failas turi šiuos leidimus:
-rw-rw-rw-
Tai reiškia, kad kiekvienas turi tik leidimo skaityti / rašyti teises. Kitas pavyzdys:
drwxr - r--
Žvelgiant į pirmąjį bitą matome, kad leidimai yra katalogui. Savininkas turi skaitymo / rašymo / vykdymo teises, tačiau grupė ir kiti vartotojai turi tik skaitymo leidimą.
Octal Number atstovavimas
Taigi, kaip leidimai Linux'e rodomi simboliais. Antrasis būdas atstovauti tuos pačius leidimus yra naudojant aštuonių skaičių. Kai vėliau naudosime chmod komandą, pamatysite, kad galite keisti teises naudodami simbolius arba aštuntainius numerius.
Taigi, kaip „Linux“ atstovauja skaitymui, rašymui ir vykdymui, naudojant aštuntus skaičius? Iš esmės, jis tiesiog priskiria numerį kiekvienam leidimui, kaip parodyta žemiau.
Skaitymo leidimą sudaro 4, rašo 2 ir atlieka 1. Viskas, ką jums reikia padaryti, tai pridėti juos, kad gautumėte aštuntąjį leidimą. Pavyzdžiui, paimkime aukščiau pateiktą pavyzdį, kur kiekvienas turi visus leidimus:
-rwxrwxrwx
Savininkas turi rwx, todėl pridėsime 4 + 2 + 1, kad gautume 7 vertę. Mes darome tą patį ir grupei, ir kitiems. Galutinė oktalinė vertė yra 777. Pažvelkime į pavyzdį, kuriame suteikėme tik skaitymo / rašymo teises:
-rw-rw-rw-
Pirmasis oktalo numeris bus 4 + 2, nes pridėsime skaitymo ir rašymo. Antrasis bus toks pat kaip ir trečiasis aštuntasis skaičius. Čia mes turime galutinę oktalo vertę 666.
Taigi dabar išbandykime kitą kelią. Pasakykite, kad norime žinoti, kokias teises turi 755 ? Na, tai gana paprasta išsiaiškinti, jei suskirstėte jį pagal atskirus numerius. Pirmasis skaičius yra 7, kurį galime gauti tik pridedant 4 + 2 + 1, ty savininkas turi skaitymo / rašymo / vykdymo leidimą. Penki gali būti gauti tik pridedant 4 + 1, tai reiškia, kad grupė ir kiti vartotojai skaito ir vykdo leidimus.
Tikimės, kad tai yra geras paaiškinimas, kaip atstovauti leidimus Linux, naudojant aštuntus skaičius. Tai gana paprasta.
Naudojant chmod keisti leidimus
Dabar, kai suprantame, kaip skaityti leidimus, pakalbėkime apie tai, kaip galime juos pakeisti. Lengviausias įrankis šiam tikslui yra „chmod“ komanda. Štai kaip tai veikia. Geriausias būdas paaiškinti komandą yra pereiti per pavyzdį.
Pradėkime nuo pirmiau nurodytų teisių, būtent:
-rw-rw-rw-
Jei norėtume pridėti vykdymo leidimą savininkui, grupei ir kitiems, galėtume tai padaryti dviem būdais. Galėtume naudoti simbolių metodą arba aštuntąjį metodą. Jei naudojate simbolių metodą, tai atliktume taip:
Tiksli komanda yra
chmod a + x failo pavadinimas
Sintaksė yra tokia: raidė arba raidės, atstovaujančios savininkui ( u ), grupei ( g ), kitai ( o ) arba visai ( a ), po kurios pridedama +, skirta pridėti leidimus, arba - atimant leidimus ir tada laiškas leidimas ( r skaityti, w rašymui ir x vykdymui).
Pirmiau pateiktame pavyzdyje pridėjau visų vartotojų vykdymo leidimą. Rezultatas, kaip matote aukščiau esančioje ekrano kopijoje, yra x savininkui, grupei ir kitai. Tarkime, kad norėjau pašalinti rašymo ir vykdymo leidimus tik grupei ir kitiems vartotojams.
Kaip matote čia, aš naudoju šią komandą:
chmod go-wx failo pavadinimas
Kadangi noriu pakeisti grupės ir kitų leidimus, naudoju g ir raidę o . Noriu pašalinti leidimus, todėl naudoju ženklą -. Galiausiai noriu pašalinti rašymo ir vykdymo teises, todėl naudoju w ir x . Štai naudinga maža lentelė simbolių naudojimui:
Taigi, viskas yra, kad būtų naudojamas simbolių metodas. Dabar pakalbėkime apie aštuntąjį metodą, kuris, mano manymu, yra šiek tiek lengviau. „Octal“ yra gražus, nes jūs galite pridėti arba pašalinti leidimus vienu metu.
Jei pradėsime su šiais failo leidimais, pažiūrėkime, kaip mes galime juos pakeisti naudojant aštuntąjį metodą:
-rw-rw-rw-
Viršuje galite matyti, kad naudoju šią komandą:
chmod 744 failo pavadinimas
Tai iš esmės sako, kad savininkas gauna skaitymo / rašymo / vykdymo leidimą, o grupė ir kita gauna tik skaitymo leidimą. Kaip matote, lengva pridėti arba pašalinti teises į vieną paprastą komandą. Tęskime ir sakykime, kad noriu dar kartą pakeisti teises.
Dabar naudoju šią komandą, vėl labai paprastą:
chmod 640 failo pavadinimas
Čia mes suteikėme savininko skaitymo / rašymo leidimus, tik grupės skaityti leidimą ir kitą grupę be leidimų. Naudodami nulį nenurodote leidimų. Gana paprasta, ar?
Apibendrinant galima pasakyti, kad tai labai paprasta Linux leidimų apžvalga ir ji gali būti daug sudėtingesnė nei tai, tačiau pradedantiesiems tai yra gera vieta pradėti. Ateityje paskelbsiu daugiau straipsnių apie pažangesnius leidimus. Jei turite klausimų, galite komentuoti. Mėgautis!