Domača » kako » Kako delujejo dovoljenja za Linux datoteke?

    Kako delujejo dovoljenja za Linux datoteke?

    Če že nekaj časa uporabljate Linux (in celo OS X), boste verjetno naleteli na napako »dovoljenja«. Toda kaj točno so in zakaj so potrebni ali koristni? Oglejmo si notranji pogled.

    Uporabniška dovoljenja

    Danes so bili računalniki ogromni stroji, ki so bili izjemno dragi. Da bi jih kar najbolje izkoristili, so bili priključeni številni računalniški terminali, ki so številnim uporabnikom omogočali hkratno opravljanje svojega poslovanja. Obdelava in shranjevanje podatkov sta bila opravljena na stroju, sam terminal pa je bil le sredstvo za ogled in vnos podatkov. Če razmišljate o tem, je precej, kako dostopamo do podatkov v »oblaku«; si oglejte sistem Amazon v oblaku MP3, Gmail in Dropbox in opazili boste, da so spremembe na lokalni ravni vse shranjene na daljavo.

    (Slika: Zenith Z-19 "neumni" terminal; kredit: ajmexico)

    Da bi to delovalo, morajo posamezni uporabniki imeti račune. Imeti morajo del prostora za shranjevanje, ki jim je dodeljen, in imeti morajo dovoljenje za izvajanje ukazov in programov. Vsakdo dobi specifična »uporabniška dovoljenja«, ki narekujejo, kaj lahko in kaj ne morejo narediti, kje v sistemu delajo in nimajo dostopa, in katere datoteke lahko in ne morejo spreminjati. Vsak uporabnik je razvrščen v različne skupine, ki omogočajo ali omejujejo nadaljnji dostop.

    Dostop do datotek

    V tem čudaškem svetu z več uporabniki smo že določili meje glede tega, kaj lahko storijo uporabniki. Kaj pa dostop do tega? Vsaka datoteka ima niz dovoljenj in lastnik. Lastnikova oznaka, ki je običajno vezana, ko je datoteka ustvarjena, določa, kateremu uporabniku pripada in samo ta uporabnik lahko spremeni svoja dovoljenja za dostop..

    V svetu Linuxa so dovoljenja razdeljena v tri kategorije: branje, pisanje in izvrševanje. Dostop "branje" omogoča pregledovanje vsebine datoteke, dostop "pisanje" omogoča spreminjanje vsebine datoteke, "izvršitev" pa omogoča zagon niza navodil, kot je skript ali program. Vsaka od teh kategorij se uporablja za različne razrede: uporabnika, skupino in svet. "Uporabnik" pomeni lastnika, "skupina" pomeni vsakega uporabnika, ki je v isti skupini kot lastnik, in "svet" pomeni vsakogar in vse.

    S temi dovoljenji lahko omejite tudi mape. Drugim osebam v vaši skupini lahko na primer dovolite ogledovanje imenikov in datotek v domači mapi, ne pa tudi drugih oseb iz vaše skupine. Verjetno boste želeli omejiti dostop »samo za pisanje«, če ne delate neke vrste skupnega projekta. Ustvarite lahko tudi imenik v skupni rabi, ki vsakomur omogoča pregledovanje in spreminjanje datotek v tej mapi.

    Spreminjanje dovoljenj v Ubuntuju

    GUI

    Če želite spremeniti dovoljenja za datoteko, ki jo imate v Ubuntuju, samo z desno tipko miške kliknite datoteko in pojdite na »Lastnosti«.

    Spremenite lahko, ali lahko Lastnik, Skupina ali Drugi berejo in pišejo, samo za branje ali ne storijo ničesar. Prav tako lahko potrdite polje, da omogočite izvajanje datoteke, in to bo omogočilo istočasno za Lastnika, Skupino in Druge.

    Ukazna vrstica

    To lahko storite tudi v ukazni vrstici. Pojdite v imenik, v katerem so datoteke, in vnesite naslednji ukaz, da si ogledate vse datoteke na seznamu:

    I-al

    Poleg vsake datoteke in imenika boste videli poseben razdelek, ki opisuje dovoljenja, ki jih ima. Izgleda takole:

    -rwxrw-r-

    The r pomeni "branje" w pomeni "pisati" in x Imeniki se bodo začeli z »d« namesto z »-«. Opazili boste tudi, da ima 10 mest, ki imajo vrednost. Prvega lahko prezrete, potem pa so na voljo trije nizi 3. Prvi niz je za lastnika, drugi je za skupino, zadnji pa za svet..

    Če želite spremeniti dovoljenja za datoteko ali imenik, poglejmo osnovno obliko ukaza chmod.

    datoteka chmod [class] [operator] [dovoljenje]

    chmod [ugoa] [+ ali -] [rwx] datoteka

    To se na prvi pogled zdi zapleteno, a verjemite mi, to je precej enostavno. Najprej poglejmo razrede:

    • u: To je za lastnika.
    • g: To je za skupino.
    • o: To je za vse druge.
    • a: To bo spremenilo dovoljenja za vse zgoraj navedeno.

    Nato operaterji:

    • +: Znak plus bo dodal naslednja dovoljenja.
    • -: Znak minus bo odstranil dovoljenja, ki sledijo.

    Še vedno z mano? Zadnji del je enak kot, ko smo preverili dovoljenja datoteke:

    • r: Omogoča dostop za branje.
    • w: Omogoča dostop za pisanje.
    • x: Omogoča izvedbo.

    Zdaj pa naj ga sestavimo. Recimo, da imamo datoteko z imenom »todo.txt«, ki ima naslednja dovoljenja:

    -rw-rw-r-

    To pomeni, da lahko lastnik in skupina bral in pisal, svet pa lahko bere samo. Dovoljenja želimo spremeniti v naslednje:

    -rwxr-

    To pomeni, da ima lastnik polna dovoljenja in skupina lahko bere. To lahko storimo v 3 korakih. Najprej bomo uporabniku dodali dovoljenje za izvedbo.

    chmod u + x todo.txt

    Nato bomo odstranili dovoljenje za pisanje za skupino.

    chmod g-w todo.txt

    Nazadnje bomo odstranili dovoljenja za branje za vse druge uporabnike.

    chmod o-r todo.txt

    Lahko jih tudi združimo v en ukaz:

    chmod u + x, g-w, o-r todo.txt

    Vidite lahko, da je vsak odsek ločen z vejicami in ni presledkov.

    Nekaj ​​uporabnih dovoljenj:

    • -rwxr-xr-x: Lastnik ima polna dovoljenja, skupina in drugi uporabniki lahko berejo vsebino datoteke in jo izvedejo.
    • -rwxr-r-: Lastnik ima polna dovoljenja, skupina in drugi uporabniki lahko berejo samo datoteko (uporabno, če ne motite, da drugi pregledujejo vaše datoteke.
    • -rwx-: Lastnik ima vsa dovoljenja, vsi ostali nimajo (uporabno za osebne skripte).
    • -rw-rw--: Lastnik in skupina lahko bral in pisala (uporabno za sodelovanje s člani skupine).
    • -rw-r-r-: Lastnik lahko bere in piše, združuje in drugi uporabniki lahko berejo samo datoteko (uporabno za shranjevanje osebnih datotek v omrežju v skupni rabi).
    • -rw--: Lastnik lahko bere in piše, vse druge nimajo (uporabno za shranjevanje osebnih datotek).

    Obstaja nekaj drugih stvari, ki jih lahko naredite s chmod - kot so setuid in setgid - vendar so malo poglobljeni in večina uporabnikov jih ne bo treba uporabiti..

    Datoteke Root ali Super-User in System

    Danes ne izvajamo vedno sistemov, ki imajo več uporabnikov. Zakaj bi nas še naprej skrbelo dovoljenje?

    No, Unix in njegovi derivati ​​- Linux, OS X, med drugim - prav tako razlikujejo med stvari, ki jih izvaja uporabnik, stvari, ki jih vodi skrbnik, ali s skrbniškimi privilegiji, in stvari, ki jih vodi sam sistem. Zato so stvari, ki so sestavni del sistema, potrebne skrbniške privilegije, ki jih je treba spremeniti ali dostopati. Na ta način ne boste ničesar naključili.

    V Ubuntuju, da spremenite sistemske datoteke, uporabite »sudo« ali »gksudo«, da pridobite ekvivalent administratorskih pravic. V drugih distrosih preklopite na »root« ali »superuporabnik«, ki dejansko počne isto, dokler se ne odjavite.

    Zavedajte se, da lahko v obeh okoliščinah spreminjanje dovoljenj za datoteke povzroči, da programi ne delujejo, nenamerno spreminjanje lastništva datoteke na uporabnika root (namesto lastnika) in zmanjšanje varnosti sistema (z dodelitvijo več dovoljenj). Zato priporočamo, da ne spreminjate dovoljenj za datoteke - še posebej sistemske datoteke - razen če je to potrebno, ali veste, kaj počnete.


    Dovoljenja za datoteke so vzpostavljena za zagotavljanje osnovnega sistema varnosti med uporabniki. Če boste spoznali, kako delujejo, lahko nastavite osnovno skupno rabo v večuporabniškem okolju, zaščitite "javne" datoteke in ugotovite, kdaj gre kaj narobe z lastništvom sistemskih datotek.

    Misliš, da lahko razložiš stvari lažje? Imate popravek? Se želite spominjati starih časov? Odločite se in si zapišite svoje misli v komentarje.