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: