Failiõigused Linuxis / Unixis: kuidas lugeda, kirjutada ja muuta

⚡ Nutikas kokkuvõte

Linuxi ja Unixi failiõigused kontrollivad, kes saab iga faili lugeda, kirjutada ja käivitada, kaitstes mitme kasutajaga süsteemi kahe kihi kaudu: omandiõigus, mis määrab kasutaja, rühma ja teised, ning lugemis-, kirjutamis- ja käivitamisõiguse bitid.

  • 👥 Omandiline kuuluvus: Iga fail ja kataloog kuulub kasutajale (omanikule), rühmale ja teistele, mida mõnikord nimetatakse maailmaks.
  • 🔑 Load: Igale omanikklassile kehtib kolm õigust: lugemine (r), kirjutamine (w) ja käivitamine (x).
  • 📃 videod: Käsk ls -l kuvab omaniku, grupi ja maailma jaoks õiguste stringi, näiteks -rw-rw-r–.
  • 🔢 Absoluutne režiim: Kolmekohalise kaheksandarvuga käsk chmod määrab õigused kõigile kolmele klassile korraga, näiteks 764.
  • Sümboolne režiim: chmod käsk u, g, o, a ja +, -, = abil muudab ühte omanikuklassi teisi puudutamata.
  • 🧭 Omandikäsklused: Käsk chown muudab omanikku ja gruppi, käsk chgrp aga ainult gruppi.
  • 🤖 Tehisintellekti abi: Tehisintellekti assistendid ja GitHub Copilot saavad genereerida ja selgitada chmod ja chown käske.

Failiõigused Linuxis ja Unixis: kuidas lugeda, kirjutada ja muuta

Failiõigused jaotises Linux ja Unix otsustavad, kes võib iga faili lugeda, muuta või käivitada, mis hoiab jagatud mitme kasutajaga süsteemi turvalisena. See leht tutvustab faili omandiõigust, lugemis-, kirjutamis- ja täitmisõigusi ning käske, mis neid muudavad.

Linux on Unixi kloon, mitme kasutajaga operatsioonisüsteem, millele pääseb samaaegselt ligi palju kasutajaid. Linuxit saab kasutada ka suurarvutites ja serverites ilma igasuguste muudatusteta. Kuid see tekitab turvaprobleeme, kuna soovimatu või pahatahtlik kasutaja saab olulisi andmeid rikkuda, muuta või eemaldada. Tõhusa turvalisuse tagamiseks jagab Linux autoriseerimise kaheks tasemeks:

  • Omandiõigus
  • Luba

Failiõiguste ja omandiõiguse mõiste on Linuxis ülioluline. Siin selgitame Linuxi õigusi ja omandiõigust ning arutame neid mõlemaid. Alustame omandiõigusest.

Linuxi faili omand

Igale teie Unixi/Linuxi süsteemi failile ja kataloogile on määratud kolm tüüpi omanikku, mis on toodud allpool. Allolev diagramm näitab, kuidas omandiõigus seostub kasutaja, rühma ja teistega.

Linuxi failiomandi diagramm, mis näitab kasutaja, rühma ja muid õiguste klasse

Kasutaja

Kasutaja on faili omanik. Vaikimisi saab faili loonud isikust selle omanik. Seetõttu nimetatakse kasutajat mõnikord ka omanikuks.

Grupp

A kasutajagrupp võib sisaldada mitut kasutajat. Kõigil gruppi kuuluvatel kasutajatel on failile samad Linuxi grupiõigused. Oletame, et teil on projekt, milles mitmel inimesel on vaja failile juurdepääsu. Selle asemel, et igale kasutajale käsitsi õigused määrata, saate kõik kasutajad gruppi lisada ja failile grupiõiguse määrata, nii et ainult need grupi liikmed ja mitte keegi teine ​​saavad faile lugeda või muuta.

Muu

Iga teine ​​kasutaja, kellel on failile juurdepääs. See isik pole faili loonud ega kuulu kasutajarühma, mis võiks faili omada. Praktikas tähendab see kõiki teisi. Seega, kui määrate teistele õigused, nimetatakse seda ka kogu maailmale õiguste määramiseks.

Nüüd kerkib suur küsimus: kuidas Linux eristab neid kolme kasutajatüüpi nii, et kasutaja 'A' ei saa mõjutada faili, mis sisaldab mõne teise kasutaja 'B' olulist teavet või andmeid? See on nagu ei tahaks kolleegi, kes töötab sinu kallal Linuxi arvuti piltide vaatamiseks. Siin tulevadki mängu õigused, mis määravad kasutaja käitumise.

Saame aru Linuxi õiguste süsteemist.

Linuxi failiload

Igal teie Unixi/Linuxi süsteemi failil ja kataloogil on järgmised kolm õigust, mis on määratletud kõigi kolme eespool käsitletud omaniku jaoks.

  • Loe: See luba annab teile õiguse faili avada ja lugeda. Kataloogi lugemisluba annab teile võimaluse selle sisu loetleda.
  • Kirjutage: Kirjutamisõigus annab teile õiguse faili sisu muuta. Kataloogi kirjutamisõigus annab teile õiguse kataloogis talletatud faile lisada, eemaldada ja ümber nimetada. Kujutage ette stsenaariumi, kus teil on faili kirjutamisõigus, kuid mitte kirjutamisõigust kataloogi, kuhu fail on salvestatud. Saate faili sisu muuta, kuid te ei saa faili kataloogist ümber nimetada, teisaldada ega eemaldada.
  • Käivita: In Windows, on käivitataval programmil tavaliselt laiend „.exe”, mida saab hõlpsalt käivitada. Unixis/Linuxis ei saa programmi käivitada, kui käivitamisõigus pole määratud. Kui käivitamisõigus pole määratud, võite ikkagi programmi koodi näha või muuta (eeldusel, et lugemis- ja kirjutamisõigused on määratud), kuid mitte seda käivitada.

Vaatame näiteid Linuxi failiõigustest. Terminalis käsu ls -l käivitamine annab:

ls -l

Allolev ekraanipilt näitab pika loendi lubade stringi.

Terminali ls -l väljund, mis näitab faili õiguste stringi rw-rw-r--

Siin oleme esile tõstnud '-rw-rw-r–' ja see kummalise välimusega kood annab meile teada omanikule, kasutajagrupile ja kogu maailmale antud Unixi õigused.

Siin tähendab esimene '-', et oleme valinud faili. Allolev ikoon tähistab tavalist faili.

Väike ikoon, mis näitab, et loetletud objekt on tavaline fail

Vastasel juhul, kui see oleks kataloog, oleks kuvatud 'd', nagu allolevas loendis.

Terminali loend, mis näitab kataloogi, mille lubade stringi alguses on d

Tegelasi on üsna lihtne meelde jätta.

  • r = lugemisõigus
  • w = kirjutamisõigus
  • x = täitmisluba
  • – = luba pole

Vaatame seda nii. Koodi esimene osa on 'rw-'. See viitab sellele, et omanik 'Home' saab:

  • Lugege faili
  • Kirjutage või redigeerige fail

Omanik ei saa faili käivitada, kuna käivitusbitt on seatud väärtusele '-'. Allolev ikoon näitab, et käivitusbitt on kustutatud kriipsuks.

Väike ikoon, mis näitab, et täitmisloa bitt on kriipsuks kustutatud

Paljud Linuxi distributsioonid, näiteks Fedora, CentOS ja Ubuntu lisa kasutaja gruppi, millel on sama nimi kui kasutajal. Seega lisatakse kasutaja 'tom' gruppi nimega 'tom'.

Teine osa on 'rw-'. See on kasutajagrupi 'Home' jaoks ja grupi liikmed saavad:

  • Lugege faili
  • Kirjutage või redigeerige fail

Kolmas osa on maailma jaoks, mis tähendab suvalist kasutajat. See ütleb 'r–'. See tähendab, et kasutaja saab ainult:

  • Lugege faili

Allolev jaotus seob iga loastringi osa omaniku, grupi ja maailmaga.

Õiguste stringi rw-rw-r-- jaotus omaniku, grupi ja maailma osadeks

Failide/kataloogide õiguste muutmine Linuxis käsu 'chmod' abil

Oletame, et te ei soovi, et kolleeg teie isiklikke pilte näeks. Seda saab teha failiõiguste muutmisega.

Me saame kasutada käsku 'chmod' käsk, mis tähistab 'muutmisrežiimi'. Selle käsu abil saame määrata failile või kataloogile õigused (lugemine, kirjutamine, käivitamine) omaniku, grupi ja kogu maailma jaoks.

süntaksit:

chmod permissions filename

Käsu kasutamiseks on kaks võimalust:

  • Absoluutne režiim
  • Sümboolne režiim

Absoluutne (numbriline) režiim Linuxis

Selles režiimis ei esitata failiõigusi märkidena, vaid kolmekohalise kaheksandsüsteemi numbrina. Allolev tabel annab kõigi õigustüüpide numbrid.

Number Loa tüüp Sümbol
0 Luba puudub -
1 Täitma - X
2 Kirjutama -in-
3 Käivita + kirjuta -wx
4 Lugenud r–
5 Loe + Käivita rx
6 Loe + kirjuta rw -
7 Loe + kirjuta + käivita rwx

Vaatame chmod käsku tegevuses, nagu on näidatud allolevas terminaliaknas.

Terminal käivitab näidisfailil käsuga chmod 764, et muuta selle õigusi

Ülaltoodud terminaliaknas oleme muutnud faili 'sample' õigused '764'-ks. Absoluutkood '764' ütleb järgmist:

  • Omanik saab lugeda, kirjutada ja käivitada.
  • Kasutajagrupp saab lugeda ja kirjutada.
  • Maailm saab ainult lugeda.

Seda kuvatakse kui '-rwxrw-r–', nagu allolevas tulemuses.

Terminali loend, mis näitab näidisfaili koos -rwxrw-r-- lubadega pärast chmod 764 käsku

Nii saate Linuxis failile kasutajaõigusi muuta, määrates absoluutarvu.

Sümboolne režiim Linuxis

Absoluutrežiimis muudate kõigi kolme omaniku õigusi. Sümboolrežiimis saate muuta konkreetse omaniku õigusi. See kasutab Unixi failiõiguste muutmiseks matemaatilisi sümboleid.

Operator Kirjeldus
+ Lisab failile või kataloogile loa
- Eemaldab loa
= Määrab loa ja tühistab varem määratud õigused

Erinevad omanikud on esindatud järgmiselt.

Kasutaja Denotatsioonid
u kasutaja/omanik
g rühm
o muu
a kõik

Me ei kasuta õigusi numbrites nagu 755, vaid tähemärkides nagu rwx. Vaatame allolevat näidet.

Terminal, mis kasutab sümboolset chmod'i koos u, g, o ja +, -, = abil konkreetsete õiguste muutmiseks

Omaniku ja grupi muutmine Linuxis

Faili või kataloogi omaniku muutmiseks võite kasutada järgmist käsku:

chown user filename

Kui soovite muuta nii faili või kataloogi kasutajat kui ka gruppi, kasutage käsku:

chown user:group filename

Vaatame seda tegevuses, nagu allpool näidatud.

Terminal, kus käivitatakse käsk chown faili omaniku ja grupi muutmiseks

Kui soovite muuta ainult grupi omanikku, kasutage käsku:

chgrp group_name filename

„chgrp” tähistab muudatusrühma. Allolev ekraanipilt näitab chgrp käsku kasutusel.

Terminal, mis käivitab chgrp käsu ainult faili grupi omaniku muutmiseks

tüüp

  • Fail /etc/group sisaldab kõiki süsteemis määratletud gruppe.
  • Kõikide gruppide leidmiseks, mille liige sa oled, saad kasutada käsku „groups”, nagu allpool näidatud.

Terminal, kus käivitatakse käsk groups, et loetleda kasutaja gruppe

  • Käsu newgrp abil saate töötada mõne muu grupi kui vaikegrupi liikmena, nagu allpool näidatud.

Terminal, mis käivitab käsu newgrp teisele grupile lülitumiseks

  • Kahel grupil ei saa olla sama faili omanik.
  • Linuxis pole pesastatud rühmi. Üks rühm ei saa olla teise alamrühm.
  • x — kataloogi käivitamine tähendab luba kataloogi "siseneda" ja saada juurdepääs alamkataloogidele.
  • Failidele ja kataloogidele saab määrata ka teisi õigusi, mida käsitletakse hilisemas edasijõudnute õpetuses.

KKK

Lisa käivitamisõigus käsuga chmod. Sümboolne vorm chmod +x script.sh annab käivitamisõiguse kõigile, samas kui chmod u+x script.sh annab selle ainult omanikule. Pärast seda saad skripti otse käivitada, kasutades selle kataloogist ./script.sh.

umask määrab äsjaloodud failidelt ja kataloogidelt eemaldatavad vaikeõigused. Failid algavad 666-st ja kataloogid 777-st, seejärel on umaski väärtus subtracted. Levinud umask 022 annab failidele 644 ja kataloogidele 755. Praeguse väärtuse nägemiseks käivita umask.

Need on spetsiaalsed load. setuid käivitab programmi omaniku õigustega, setgid käivitab selle grupi õigustega või paneb uued failid kataloogi grupi pärima ja kleepuv bitt lubab ainult faili omanikul selle jagatud kataloogis, näiteks /tmp, kustutada.

Jah. Ainult root või sudo käivitav kasutaja saab faili omanikku chown abil muuta. Tavaline omanik saab oma faili anda üle grupile, kuhu ta kuulub, kuid faili teisele kasutajale määramiseks on turvakaalutlustel vaja root-õigusi.

See viga tähendab, et sul puuduvad õigused faili muuta. chmodi käivitamiseks pead sa faili omanik olema või olema root; chowni käivitamiseks vajad üldiselt root'i. Lisa käsu ette sudo või lülitu faili omanikule ja proovi uuesti.

Kasutage rekursiivset valikut -R. chmod -R 755 myfolder rakendab õigused kaustale ja igale selles olevale failile ja alamkaustale ning chown -R user:group myfolder teeb sama omandiõiguse jaoks. Kasutage valikut -R ettevaatlikult, kuna see mõjutab kõiki kausta all olevaid üksusi.

Tehisintellekti assistendid suudavad tõlkida sellise päringu nagu „tee see skript käivitatavaks ainult minu jaoks” õigeks chmod-käsuks, selgitada, mida tähendab režiim nagu 755, ja hoiatada riskantsete sätete (nt 777) eest. Masinõppe turvatööriistad märgistavad ka failid, mille õigused tunduvad ohtlikult avatud.

Jah. GitHubi koopia saab lühikese kommentaari põhjal, mis kirjeldab soovitud õigusi või omanikku, soovitada käske chmod, chown ja chgrp ning neid tippimise ajal täita. RevVaadake iga soovitus enne selle käivitamist üle, kuna õiguste ja omandiõiguse muudatused mõjutavad turvalisust.

Võta see postitus kokku järgmiselt: