Tiedosto-oikeudet Linuxissa / Unixissa: Kuinka lukea, kirjoittaa ja muuttaa

โšก ร„lykรคs yhteenveto

Linuxissa ja Unixissa tiedostojen kรคyttรถoikeudet hallitsevat sitรค, kuka voi lukea, kirjoittaa ja suorittaa kutakin tiedostoa. Ne suojaavat usean kรคyttรคjรคn jรคrjestelmรครค kahdella tasolla: omistajuudella, joka mรครคrittรครค kรคyttรคjรคn, ryhmรคn ja muita oikeuksia, sekรค luku-, kirjoitus- ja suoritusoikeuksilla.

  • ๐Ÿ‘ฅ Omistus: Jokainen tiedosto ja hakemisto kuuluu kรคyttรคjรคlle (omistajalle), ryhmรคlle ja muille, joita joskus kutsutaan maailmaksi.
  • ๐Ÿ”‘ kรคyttรถoikeudet: Jokaisella omistajaluokalla on kolme oikeutta: luku (r), kirjoitus (w) ja suoritus (x).
  • ๐Ÿ“ƒ Listing: Komento ls -l nรคyttรครค kรคyttรถoikeusmerkkijonon, kuten -rw-rw-rโ€“ omistajalle, ryhmรคlle ja maailmalle.
  • ๐Ÿ”ข Absoluuttinen tila: Kolminumeroisella oktaaliluvulla varustettu chmod asettaa oikeudet kaikille kolmelle luokalle kerralla, esimerkiksi 764.
  • โž• Symbolinen tila: chmod-komento, jossa on u, g, o, a ja +, -, =, muuttaa yhden omistajaluokan koskematta muihin.
  • ๐Ÿงญ Omistajuuskomennot: chown-komento vaihtaa omistajan ja ryhmรคn, kun taas chgrp muuttaa vain ryhmรคn.
  • ๐Ÿค– Tekoรคlyn apu: Tekoรคlyavustajat ja GitHub Copilot voivat luoda ja selittรครค chmod- ja chown-komentoja.

Tiedosto-oikeudet Linuxissa ja Unixissa: kuinka lukea, kirjoittaa ja muuttaa

Tiedoston kรคyttรถoikeudet Linux ja Unix pรครคttรคvรคt, kuka saa lukea, muokata tai suorittaa kutakin tiedostoa, mikรค pitรครค jaetun, usean kรคyttรคjรคn jรคrjestelmรคn turvallisena. Tรคmรค sivu kรคy lรคpi tiedostojen omistajuuden, luku-, kirjoitus- ja suoritusoikeudet sekรค komennot, jotka niitรค muuttavat.

Linux on Unixin klooni, joka on usean kรคyttรคjรคn samanaikaisesti kรคyttรคmรค kรคyttรถjรคrjestelmรค. Linuxia voidaan kรคyttรครค myรถs keskustietokoneilla ja palvelimilla ilman muutoksia. Tรคmรค herรคttรครค kuitenkin tietoturvaongelmia, sillรค pyytรคmรคtรถn tai pahantahtoinen kรคyttรคjรค voi vioittaa, muuttaa tai poistaa tรคrkeitรค tietoja. Tehokkaan tietoturvan takaamiseksi Linux jakaa valtuutuksen kahteen tasoon:

  • Omistus
  • Lupa

Tiedoston kรคyttรถoikeuksien ja omistajuuden kรคsite on Linuxissa keskeinen. Tรคssรค selitรคmme Linuxin kรคyttรถoikeudet ja omistajuuden ja keskustelemme molemmista. Aloitetaan omistajuudesta.

Linux-tiedoston omistusoikeus

Jokaiselle Unix/Linux-jรคrjestelmรคn tiedostolle ja hakemistolle on mรครคritetty kolme omistajatyyppiรค, jotka on esitetty alla. Alla oleva kaavio nรคyttรครค, miten omistajuus liittyy kรคyttรคjรครคn, ryhmรครคn ja muihin.

Linux-tiedostojen omistajuuskaavio, joka nรคyttรครค kรคyttรคjรค-, ryhmรค- ja muut kรคyttรถoikeusluokat

kรคyttรคjรค

Kรคyttรคjรค on tiedoston omistaja. Oletuksena tiedoston luoneesta henkilรถstรค tulee sen omistaja. Tรคstรค syystรค kรคyttรคjรครค kutsutaan joskus myรถs omistajaksi.

Ryhmรค

A kรคyttรคjรคryhmรค voi sisรคltรครค useita kรคyttรคjiรค. Kaikilla ryhmรครคn kuuluvilla kรคyttรคjillรค on samat Linux-ryhmรคn oikeudet tiedostoon. Oletetaan, ettรค sinulla on projekti, jossa useat ihmiset tarvitsevat tiedoston kรคyttรถoikeuksia. Sen sijaan, ettรค mรครคrittรคisit oikeudet manuaalisesti kullekin kรคyttรคjรคlle, voit lisรคtรค kaikki kรคyttรคjรคt ryhmรครคn ja mรครคrittรครค ryhmรคlle tiedoston kรคyttรถoikeudet, jolloin vain nรคmรค ryhmรคn jรคsenet, eikรค kukaan muu, voivat lukea tai muokata tiedostoja.

Muut

Kuka tahansa muu kรคyttรคjรค, jolla on pรครคsy tiedostoon. Tรคmรค henkilรถ ei ole luonut tiedostoa eikรค kuulu kรคyttรคjรคryhmรครคn, joka voisi omistaa tiedoston. Kรคytรคnnรถssรค se tarkoittaa kaikkia muita. Siksi, kun asetat kรคyttรถoikeudet muille, sitรค kutsutaan myรถs kรคyttรถoikeuksien asettamiseksi koko maailmalle.

Nyt herรครค suuri kysymys: miten Linux erottaa nรคmรค kolme kรคyttรคjรคtyyppiรค toisistaan โ€‹โ€‹niin, ettรค kรคyttรคjรค 'A' ei voi vaikuttaa tiedostoon, joka sisรคltรครค toisen kรคyttรคjรคn 'B' tรคrkeitรค tietoja? Se on kuin ei haluaisi kollegaa, joka tyรถskentelee sinun parissasi. Linux-tietokone katsella kuviasi. Tรคssรค kohtaa kรคyttรถoikeudet tulevat mukaan kuvaan, ja ne mรครคrittelevรคt kรคyttรคjรคn toiminnan.

Ymmรคrretรครคn Linuxin kรคyttรถoikeusjรคrjestelmรค.

Linux -tiedostojen kรคyttรถoikeudet

Jokaisella Unix/Linux-jรคrjestelmรคn tiedostolla ja hakemistolla on seuraavat kolme kรคyttรถoikeutta, jotka on mรครคritelty kaikille kolmelle edellรค kรคsitellylle omistajalle.

  • Lue: Tรคmรค kรคyttรถoikeus antaa sinulle oikeuden avata ja lukea tiedostoa. Hakemiston lukuoikeus antaa sinulle mahdollisuuden listata sen sisรคllรถn.
  • Kirjoittaa: Kirjoitusoikeus antaa sinulle oikeuden muokata tiedoston sisรคltรถรค. Hakemiston kirjoitusoikeus antaa sinulle oikeuden lisรคtรค, poistaa ja nimetรค uudelleen hakemistoon tallennettuja tiedostoja. Ajatellaanpa tilannetta, jossa sinulla on kirjoitusoikeus tiedostoon, mutta ei kirjoitusoikeutta hakemistoon, johon tiedosto on tallennettu. Voit muokata tiedoston sisรคltรถรค, mutta et voi nimetรค tiedostoa uudelleen, siirtรครค tai poistaa sitรค hakemistosta.
  • Suorittaa: In WindowsSuoritettavalla ohjelmalla on yleensรค .exe-pรครคte, jonka voit helposti suorittaa. Unixissa/Linuxissa et voi suorittaa ohjelmaa, ellei suoritusoikeutta ole asetettu. Jos suoritusoikeutta ei ole asetettu, saatat silti voida nรคhdรค tai muokata ohjelmakoodia (edellyttรคen, ettรค luku- ja kirjoitusoikeudet on asetettu), mutta et voi suorittaa sitรค.

Katsotaanpa tiedostojen kรคyttรถoikeuksia Linuxissa esimerkkien avulla. ls -l -komennon suorittaminen terminaalissa antaa tulokseksi:

ls -l

Alla oleva kuvakaappaus nรคyttรครค pitkรคn listauksen kรคyttรถoikeusmerkkijonon.

Pรครคtelaitteen ls -l tuloste, joka nรคyttรครค tiedoston kรคyttรถoikeusmerkkijonon rw-rw-r--

Tรคssรค olemme korostaneet '-rw-rw-rโ€“', ja tรคmรค oudon nรคkรถinen koodi kertoo meille omistajalle, kรคyttรคjรคryhmรคlle ja koko maailmalle annetut Unix-kรคyttรถoikeudet.

Tรคssรค ensimmรคinen '-' tarkoittaa, ettรค olemme valinneet tiedoston. Alla oleva kuvake merkitsee tavallista tiedostoa.

Pieni kuvake, joka osoittaa, ettรค listattu kohde on tavallinen tiedosto

Muuten, jos se olisi hakemisto, siinรค olisi nรคkynyt 'd', kuten alla olevassa listassa.

Pรครคteluettelo, jossa nรคkyy hakemisto, jonka kรคyttรถoikeusmerkkijonossa on alussa d

Hahmot ovat melko helppo muistaa.

  • r = lukuoikeus
  • w = kirjoitusoikeus
  • x = suoritusoikeus
  • โ€“ = ei lupaa

Katsotaanpa asiaa nรคin. Koodin ensimmรคinen osa on 'rw-'. Tรคmรค viittaa siihen, ettรค omistaja 'Home' voi:

  • Lue tiedosto
  • Kirjoita tai muokkaa tiedostoa

Omistaja ei voi suorittaa tiedostoa, koska suoritusbitti on asetettu arvoon '-'. Alla oleva kuvake nรคyttรครค suoritusbitin tyhjentyneenรค viivaksi.

Pieni kuvake, joka nรคyttรครค suorituslupabitin tyhjentyneen viivaksi

Monet Linux-jakelut, kuten Fedora, CentOS ja Ubuntu lisรครค kรคyttรคjรค ryhmรครคn, jolla on sama nimi kuin kรคyttรคjรคllรค. Nรคin ollen kรคyttรคjรค 'tom' lisรคtรครคn ryhmรครคn nimeltรค 'tom'.

Toinen osa on 'rw-'. Se on kรคyttรคjรคryhmรคlle 'Home', ja ryhmรคn jรคsenet voivat:

  • Lue tiedosto
  • Kirjoita tai muokkaa tiedostoa

Kolmas osa on maailmalle, joka tarkoittaa mitรค tahansa kรคyttรคjรครค. Siinรค lukee 'rโ€“'. Tรคmรค tarkoittaa, ettรค kรคyttรคjรค voi vain:

  • Lue tiedosto

Alla oleva erittely yhdistรครค kรคyttรถoikeusmerkkijonon jokaisen osan omistajaan, ryhmรครคn ja maailmaan.

rw-rw-r-- kรคyttรถoikeusmerkkijonon erittely omistaja-, ryhmรค- ja maailma-osiin

Tiedosto-/hakemisto-oikeuksien muuttaminen Linuxissa chmod-komennon avulla

Oletetaan, ettet halua tyรถtoverin nรคkevรคn henkilรถkohtaisia โ€‹โ€‹kuviasi. Tรคmรค voidaan tehdรค muuttamalla tiedostojen kรคyttรถoikeuksia.

Voimme kรคyttรครค 'chmod'-komentoa komento, joka on lyhenne sanoista 'muutostila'. Komennon avulla voimme asettaa tiedostolle tai hakemistolle oikeudet (luku, kirjoitus, suoritus) omistajalle, ryhmรคlle ja kaikille.

Syntaksi:

chmod permissions filename

Komentoa voi kรคyttรครค kahdella tavalla:

  • Absoluuttinen tila
  • Symbolinen tila

Absoluuttinen (numeerinen) tila Linuxissa

Tรคssรค tilassa tiedostojen kรคyttรถoikeuksia ei esitetรค merkeinรค, vaan kolminumeroisena oktaalilukuna. Alla oleva taulukko antaa numerot kaikille kรคyttรถoikeustyypeille.

numero Lupatyyppi Symboli
0 Ei lupaa -
1 Suorittaa โ€“X
2 Kirjoittaa -W-
3 Suorita + Kirjoita -wx
4 Lue rโ€“
5 Lue + Suorita rx
6 Lue + kirjoita rw
7 Lue + Kirjoita + Suorita rwx

Katsotaanpa chmod-komentoa toiminnassa, kuten alla olevassa pรครคteikkunassa nรคkyy.

Pรครคte suorittaa tiedostolle esimerkkikomennon chmod 764 muuttaakseen sen kรคyttรถoikeuksia

Yllรค olevassa pรครคteikkunassa olemme muuttaneet tiedoston 'sample' kรคyttรถoikeudet arvoon '764'. Absoluuttinen '764'-koodi sanoo seuraavaa:

  • Omistaja voi lukea, kirjoittaa ja suorittaa.
  • Kรคyttรคjรคryhmรค voi lukea ja kirjoittaa.
  • Maailma voi vain lukea.

Tรคmรค nรคkyy muodossa '-rwxrw-rโ€“', kuten alla olevassa tuloksessa.

Pรครคteluettelo, jossa nรคkyy esimerkkitiedosto, jossa on -rwxrw-r-- kรคyttรถoikeusmerkkijono chmod 764:n jรคlkeen

Nรคin voit muuttaa tiedoston kรคyttรคjรคoikeuksia Linuxissa mรครคrittรคmรคllรค absoluuttisen luvun.

Symbolinen tila Linuxissa

Absoluuttisessa tilassa muutat kaikkien kolmen omistajan oikeuksia. Symbolisessa tilassa voit muokata tietyn omistajan oikeuksia. Se kรคyttรครค matemaattisia symboleja Unix-tiedostojen oikeuksien muokkaamiseen.

OperaTor Tuotetiedot
+ Lisรครค luvan tiedostoon tai hakemistoon
- Poistaa luvan
= Asettaa kรคyttรถoikeuden ja ohittaa aiemmin asetetut kรคyttรถoikeudet

Eri omistajat on edustettuina seuraavasti.

kรคyttรคjรค Merkinnรคt
u Kรคyttรคjรค / omistaja
g ryhmรค
o muut
a kaikki

Emme kรคytรค kรคyttรถoikeuksia numeroiden, kuten 755, muodossa, vaan merkkien, kuten rwx, muodossa. Katsotaanpa alla olevaa esimerkkiรค.

Pรครคtelaite kรคyttรครค symbolista chmod-komentosarjaa u, g, o ja +, -, = muuttaakseen tiettyjรค oikeuksia

Omistuksen ja ryhmรคn muuttaminen Linuxissa

Voit muuttaa tiedoston tai hakemiston omistajuutta seuraavalla komennolla:

chown user filename

Jos haluat muuttaa tiedoston tai hakemiston kรคyttรคjรครค sekรค ryhmรครค, kรคytรค komentoa:

chown user:group filename

Katsotaanpa tรคtรค toiminnassa, kuten alla on esitetty.

Pรครคte, jossa suoritetaan chown-komento tiedoston omistajan ja ryhmรคn vaihtamiseksi

Jos haluat vaihtaa vain ryhmรคn omistajan, kรคytรค komentoa:

chgrp group_name filename

'chgrp' tarkoittaa muutosryhmรครค. Alla oleva kuvakaappaus nรคyttรครค chgrp-komennon kรคytรถssรค.

Pรครคte, jossa suoritetaan chgrp-komento vain tiedoston ryhmรคn omistajan muuttamiseksi

Kรคrki

  • Tiedosto /etc/group sisรคltรครค kaikki jรคrjestelmรคssรค mรครคritellyt ryhmรคt.
  • Voit kรคyttรครค komentoa โ€groupsโ€ lรถytรครคksesi kaikki ryhmรคt, joiden jรคsen olet, kuten alla on esitetty.

Pรครคte suorittaa groups-komennon, joka listaa kรคyttรคjรคn ryhmรคt

  • Voit kรคyttรครค komentoa newgrp tyรถskennellรคksesi muun kuin oletusryhmรคsi jรคsenenรค, kuten alla on esitetty.

Pรครคte suorittaa newgrp-komennon vaihtaakseen toiseen ryhmรครคn

  • Kahdella ryhmรคllรค ei voi olla samaa tiedostoa hallussaan.
  • Linuxissa ei ole sisรคkkรคisiรค ryhmiรค. Yksi ryhmรค ei voi olla toisen aliryhmรค.
  • x โ€” hakemiston suorittaminen tarkoittaa, ettรค kรคyttรคjรคllรค on lupa "siirtyรค" hakemistoon ja mahdollisesti pรครคstรค kรคsiksi sen alihakemistoihin.
  • Tiedostoille ja hakemistoille voi asettaa muitakin kรคyttรถoikeuksia, joita kรคsitellรครคn myรถhemmin lisรคopetusohjelmassa.

UKK

Lisรครค suoritusoikeus komennolla chmod. Symbolinen muoto chmod +x script.sh myรถntรครค suoritusoikeuden kaikille, kun taas chmod u+x script.sh myรถntรครค sen vain omistajalle. Tรคmรคn jรคlkeen voit suorittaa komentosarjan suoraan komennolla ./script.sh sen hakemistosta.

umask asettaa oletuskรคyttรถoikeudet, jotka poistetaan รคskettรคin luoduista tiedostoista ja hakemistoista. Tiedostot alkavat numerosta 666 ja hakemistot numerosta 777, jolloin umask-arvo on subtracted. Yleinen umask-arvo 022 antaa tiedostoille 644 ja hakemistoille 755. Suorita umask nรคhdรคksesi nykyisen arvon.

Nรคmรค ovat erityisiรค kรคyttรถoikeusbittejรค. setuid suorittaa ohjelman omistajansa oikeuksilla, setgid suorittaa sen ryhmรคn oikeuksilla tai saa uudet tiedostot perimรครคn hakemiston ryhmรคn, ja sticky-bitti antaa vain tiedoston omistajan poistaa sen jaetusta hakemistosta, kuten /tmp.

Kyllรค. Vain pรครคkรคyttรคjรค tai sudo-komentoa suorittava kรคyttรคjรค voi muuttaa tiedoston omistajaa chown-komennolla. Tavallinen omistaja voi luovuttaa tiedostonsa ryhmรคlle, johon hรคn kuuluu, mutta tiedoston siirtรคminen toiselle kรคyttรคjรคlle vaatii pรครคkรคyttรคjรคn oikeudet turvallisuussyistรค.

Tuo virhe tarkoittaa, ettรค sinulla ei ole oikeuksia muuttaa tiedostoa. chmod-komennon suorittamiseen sinun on omistettava tiedosto tai oltava pรครคkรคyttรคjรค (root); chown-komennon suorittamiseen tarvitset yleensรค pรครคkรคyttรคjรคn (root). Lisรครค komennon etuliitteeseen sudo tai vaihda tiedoston omistajaan ja yritรค uudelleen.

Kรคytรค rekursiivista -R-optiota. chmod -R 755 myfolder asettaa kรคyttรถoikeudet kansioon ja kaikkiin sen sisรคllรค oleviin tiedostoihin ja alikansioihin, ja chown -R user:group myfolder tekee saman omistajuudelle. Kรคytรค -R-optiota varoen, sillรค se vaikuttaa kaikkiin kansion alla oleviin tiedostoihin.

Tekoรคlyavustajat voivat kรครคntรครค pyynnรถn, kuten โ€tee tรคstรค komentosarjasta suoritettava vain minulleโ€, oikeaksi chmod-komennoksi, selittรครค, mitรค tila, kuten 755, tarkoittaa, ja varoittaa riskialttiista asetuksista, kuten 777. Koneoppimiseen perustuvat tietoturvatyรถkalut merkitsevรคt myรถs tiedostot, joiden kรคyttรถoikeudet nรคyttรคvรคt vaarallisen avoimilta.

Kyllรค. GitHub Copilot voi ehdottaa chmod-, chown- ja chgrp-komentoja lyhyestรค kommentista, jossa kuvataan haluamasi kรคyttรถoikeudet tai omistaja, ja tรคydentรครค niitรค kirjoittaessasi. RevTarkista jokainen ehdotus ennen sen suorittamista, koska kรคyttรถoikeuksien ja omistajuuden muutokset vaikuttavat tietoturvaan.

Tiivistรค tรคmรค viesti seuraavasti: