Kaip veikia Linux failų leidimas?
Jei „Linux“ naudojote tam tikrą laiką (ir net „OS X“), tikriausiai jūs patyrėte „leidimų“ klaidą. Bet kas būtent jie ir kodėl jie yra būtini ar naudingi? Pažvelkime į vidų.
Naudotojo leidimai
Dieną kompiuteriai buvo didžiulės mašinos, kurios buvo neįtikėtinai brangios. Norint išnaudoti kuo daugiau iš jų, buvo prijungti keli kompiuterių terminalai, kurie leido daugeliui vartotojų vienu metu eiti savo verslu. Duomenų apdorojimas ir saugojimas buvo atliekamas mašinoje, o terminalai patys buvo šiek tiek daugiau nei duomenų peržiūrėjimo ir įvedimo priemonė. Jei galvojate apie tai, tai beveik kaip mes pasiekiame „debesies“ duomenis; pažvelkite į „Amazon“ „Cloud MP3“ sistemą, „Gmail“ ir „Dropbox“, ir pastebėsite, kad nors pakeitimus galima atlikti vietoje, viskas saugoma nuotoliniu būdu.
(Vaizdas: Zenith Z-19 „kvailas“ terminalas; kreditas: ajmexico)
Kad tai veiktų, atskiri vartotojai turi turėti sąskaitas. Jie turi turėti jiems skirtą saugyklos dalį ir jiems turi būti leidžiama paleisti komandas ir programas. Kiekvienas žmogus gauna konkrečius „naudotojo leidimus“, kurie diktuoja, ką jie gali ir negali padaryti, kur sistemoje, kurioje jie veikia ir neturi prieigos, ir kurių failai gali ir negali keisti. Kiekvienas vartotojas taip pat įdedamas į įvairias grupes, kurios suteikia arba apriboja tolesnę prieigą.
Failo prieiga
Šiame beprasmiame daugelio naudotojų pasaulyje jau nustatėme, ką gali daryti vartotojai. Bet ką daryti su juo? Na, kiekvienas failas turi leidimų rinkinį ir savininką. Savininko pavadinimas, paprastai susietas, kai sukuriamas failas, deklaruoja, kuriam vartotojui jis priklauso, ir tik tas vartotojas gali keisti savo prieigos teises.
Linux pasaulyje leidimai skirstomi į tris kategorijas: skaityti, rašyti ir vykdyti. „Skaityti“ prieiga leidžia peržiūrėti failo turinį, „rašyti“ prieigą leidžia keisti failo turinį, o „vykdyti“ leidžia paleisti nurodymų rinkinį, pvz., Scenarijų ar programą. Kiekviena iš šių kategorijų yra taikoma skirtingoms klasėms: vartotojui, grupei ir pasauliui. „Vartotojas“ reiškia savininką, „grupė“ reiškia bet kurį vartotoją, kuris yra toje pačioje grupėje kaip ir savininkas, o „pasaulis“ reiškia bet kurį ir visus.
Su šiais leidimais taip pat galima apriboti aplankus. Pavyzdžiui, galite leisti kitiems jūsų grupės žmonėms peržiūrėti katalogus ir failus savo namų aplanke, bet ne visiems, kurie nėra jūsų grupės nariai. Jūs tikriausiai norėsite apriboti „rašyti“ prieigą tik sau, nebent dirbate su bendru projektu. Taip pat galite sukurti bendrinamą katalogą, kuris leidžia visiems peržiūrėti ir modifikuoti to aplanko failus.
Leidimų keitimas Ubuntu
GUI
Jei norite pakeisti Ubuntu priklausančio failo leidimus, tiesiog spustelėkite dešinįjį pelės klavišą ir pereikite prie „Ypatybės“.
Galite keisti, ar savininkas, grupė ar kiti gali skaityti ir rašyti, skaityti tik ar nieko nedaryti. Taip pat galite pažymėti langelį, kad leistumėte failo vykdymą, ir tai vienu metu įgalins jį savininkui, grupei ir kt.
Komandinė eilutė
Taip pat galite tai padaryti per komandinę eilutę. Eikite į katalogą, kuriame yra failai, ir įveskite šią komandą, kad peržiūrėtumėte visus sąraše esančius failus:
ls -al
Šalia kiekvieno failo ir katalogo matysite specialų skyrių, kuriame aprašomos jos turimos teisės. Tai atrodo taip:
-rwxrw-r-
The r reiškia „skaityti“ w reiškia „rašyti“ ir „ x reiškia „vykdyti“. Katalogai bus pradėti „d“ vietoj „-“. Taip pat pastebėsite, kad yra 10 vietų, kurios turi vertę. Jūs galite ignoruoti pirmąjį, o tada yra 3 rinkiniai iš 3. Pirmasis rinkinys skirtas savininkui, antrasis - grupei, o paskutinis rinkinys - pasauliui.
Norėdami pakeisti failo ar katalogo leidimus, pažvelkime pagrindinę komandą chmod.
chmod [class] [operatorius] [leidimo] failas
chmod [ugoa] [+ arba -] [rwx] failas
Iš pradžių tai gali atrodyti sudėtinga, bet pasitikėkite manimi, tai gana paprasta. Pirma, pažvelkime į klases:
- u: Tai yra savininkui.
- g: Tai skirta grupei.
- o: Tai yra visiems kitiems.
- a: Tai pakeis visų pirmiau nurodytų leidimų teises.
Toliau operatoriai:
- +: Pliuso ženklas prideda tolesnius leidimus.
- -: Minuso ženklas pašalins toliau nurodytas teises.
Dar su manimi? Ir paskutinis skyrius yra toks pat kaip ir tada, kai patikrinome failo leidimus:
- r: Leidžia skaityti prieigą.
- w: Leidžia rašyti prieigą.
- x: leidžia vykdyti vykdymą.
Dabar, padėkime kartu. Tarkime, turime failą, pavadintą „todo.txt“, kuris turi tokius leidimus:
-rw-rw-r-
Tai reiškia, kad savininkas ir grupė gali skaityti ir rašyti, o pasaulis gali tik skaityti. Norime pakeisti šių teisių leidimus:
-rwxr-
Tai reiškia, kad savininkas turi visas teises ir grupė gali skaityti. Tai galime padaryti 3 etapais. Pirmiausia naudotojui pridėsime vykdymo leidimą.
chmod u + x todo.txt
Tada pašalinsime grupės rašymo leidimą.
chmod g-w todo.txt
Galiausiai pašalinsime visų kitų naudotojų skaitymo teises.
chmod o-r todo.txt
Mes taip pat galime juos sujungti į vieną komandą, pavyzdžiui:
chmod u + x, g-w, o-r todo.txt
Matote, kad kiekviena sekcija atskiriama kableliais ir nėra tarpų.
Štai keletas naudingų leidimų:
- -rwxr-xr-x: Savininkas turi visas teises, grupė ir kiti vartotojai gali skaityti failo turinį ir vykdyti.
- -rwxr-r-: Savininkas turi visas teises, grupė ir kiti vartotojai gali skaityti tik failą (naudinga, jei nenorite, kad kiti peržiūrėtų jūsų failus).
- -rwx-: Savininkas turi visas teises, visi kiti neturi (naudingi asmeniniams scenarijus).
- -rw-rw--: Savininkas ir grupė gali skaityti ir rašyti (naudingi bendradarbiaujant su grupės nariais).
- -rw-r-r-: Savininkas gali skaityti ir rašyti, grupė ir kiti vartotojai gali skaityti tik failą (naudinga asmeniniams failams saugoti bendrai naudojamame tinkle).
- -rw--: Savininkas gali skaityti ir rašyti, visi kiti neturi (naudingi asmeniniams failams saugoti).
Yra keletas kitų dalykų, kuriuos galite padaryti su „chmod“, pvz., „Setuid“ ir „setgid“, bet jie yra šiek tiek išsamesni ir dauguma vartotojų tikrai neturės jų naudoti.
Root arba Super-User ir System Files
Šiandien mes ne visada vykdome sistemas, kuriose yra keli naudotojai. Kodėl turėtume vis dar nerimauti dėl leidimų?
Be to, „Unix“ ir jos išvestinės priemonės - „Linux“, „OS X“ - taip pat atskiria vartotojo valdomus dalykus, administratoriaus valdomus dalykus arba administratoriaus teises ir pačios sistemos valdomus dalykus. Todėl sistemai būtini dalykai turi būti pakeisti administratoriaus privilegijomis. Tokiu būdu, jūs netyčia nenusivilkite.
Naudodami „Ubuntu“, atlikite sistemos failų pakeitimus, naudodami „sudo“ arba „gksudo“, kad gautumėte administratoriaus teisių ekvivalentą. Kituose rajonuose pereisite prie „root“ arba „super-user“, kuris veiksmingai atlieka tą patį, kol atsijungsite.
Atkreipkite dėmesį, kad abiem šiomis aplinkybėmis failų leidimų keitimas gali sukelti programų neveikimą, netyčia keičiant failo nuosavybę į root naudotoją (vietoj savininko) ir padaryti sistemą saugesnę (suteikiant daugiau leidimų). Todėl rekomenduojama nekeisti failų, ypač sistemos failų, leidimų, nebent tai būtina arba žinote, ką darote.
Yra leidimo naudoti failą pagrindinės sistemos vartotojų saugumui užtikrinti. Mokymasis, kaip jie veikia, gali padėti jums nustatyti pagrindinį bendrinimą daugiafunkcinėje aplinkoje, apsaugoti „viešuosius“ failus ir suteikti jums clue, kada kažkas negerai su sistemos failų nuosavybe.
Manote, kad galite lengviau paaiškinti dalykus? Ar turite pataisą? Norite prisiminti senas dienas? Paimkite pertrauką ir pateikite savo mintis komentaruose.