RHCSA-sarja: ACL-luetteloiden (kulunvalvontaluettelot) käyttö ja Samba/NFS-osakkeiden asentaminen - osa 7


Viimeisessä artikkelissa (RHCSA-sarjan osa 6) aloimme selittää, kuinka paikallisen järjestelmän tallennustila asetetaan ja määritetään partedin ja ssm: n avulla.

Keskustelimme myös siitä, miten salatut taltiot luodaan ja asennetaan salasanalla järjestelmän käynnistyksen aikana. Lisäksi varoitimme välttämään kriittisten tallennustilan hallintatoimenpiteiden suorittamista asennetuissa tiedostojärjestelmissä. Tässä mielessä tarkastelemme nyt Red Hat Enterprise Linux 7: n eniten käytettyjä tiedostojärjestelmämuotoja ja käsittelemme sitten aiheita, jotka koskevat sekä manuaalisesti että automaattisesti verkkotiedostojärjestelmien (CIFS ja NFS) asentamista, käyttöä ja irrottamista sekä toteutusta. järjestelmän käyttöoikeusluetteloita.

Ennen kuin jatkat, varmista, että sinulla on käytettävissä Samba-palvelin ja NFS-palvelin (huomaa, että NFSv2: ta ei enää tueta RHEL 7: ssä).

Tämän oppaan aikana käytämme konetta, jonka IP-osoite on 192.168.0.10 ja jossa molemmat palvelut ovat palvelimena, ja RHEL 7 -ruutua asiakkaana, jonka IP-osoite on 192.168.0.18. Myöhemmin artikkelissa kerromme, mitkä paketit sinun on asennettava asiakkaalle.

Tiedostojärjestelmän muodot RHEL: ssä 7

RHEL 7: stä lähtien XFS on otettu käyttöön kaikkien arkkitehtuurien oletustiedostojärjestelmänä korkean suorituskyvyn ja skaalautuvuuden vuoksi. Se tukee tällä hetkellä 500 Tt: n tiedostojärjestelmän enimmäiskokoa Red Hatin ja sen yhteistyökumppaneiden viimeisimpien laitteistokokeiden mukaisesti.

XFS ottaa myös oletusasennusvaihtoehtoina käyttöön user_xattr (laajennetut käyttäjäattribuutit) ja acl (POSIX-pääsynhallintaluettelot), toisin kuin ext3 tai ext4 (ext2 katsotaan vanhentuneeksi RHEL 7: stä lähtien) ), mikä tarkoittaa, että sinun ei tarvitse määrittää näitä asetuksia nimenomaisesti komentorivillä tai/etc/fstab -ohjelmassa asennettaessa XFS-tiedostojärjestelmää (jos haluat poistaa tällaiset asetukset käytöstä tässä viimeisessä tapauksessa, sinun on nimenomaisesti käytettävä < b> no_acl ja no_user_xattr ).

Muista, että laajennetut käyttäjäattribuutit voidaan osoittaa tiedostoihin ja hakemistoihin mielivaltaisten lisätietojen, kuten mime-tyypin, merkistöjen tai tiedoston koodauksen, tallentamiseksi, kun taas käyttäjän määritteiden käyttöoikeudet määritetään tavallisilla tiedoston käyttöoikeusbiteillä.

Koska jokainen järjestelmänvalvoja, joko aloittelija tai asiantuntija, tuntee hyvin tiedostojen ja hakemistojen säännölliset käyttöoikeudet, jotka määrittävät tietyt oikeudet (luku-, kirjoitus- ja suoritusoikeudet) omistajalle, ryhmälle ja "maailmalle" (kaikille muille) . Voit kuitenkin viitata RHCSA-sarjan osaan 3, jos haluat päivittää muistiasi hieman.

Koska tavallinen ugo/rwx-joukko ei salli eri käyttöoikeuksien määrittämistä eri käyttäjille, otettiin käyttöön ACL: t, jotta tiedostoille ja hakemistoille voidaan määritellä yksityiskohtaisemmat käyttöoikeudet kuin tavallisissa käyttöoikeuksissa.

Itse asiassa ACL: n määrittelemät käyttöoikeudet ovat tiedoston käyttöoikeusbittien määrittelemien oikeuksien pääjoukko. Katsotaanpa, miten kaikkea tätä käännetään sovellettuna todellisessa maailmassa.

1. ACL-luetteloita on kahta tyyppiä: käyttöoikeusluettelot, joita voidaan käyttää joko tiettyyn tiedostoon tai hakemistoon) ja oletusarvoiset ACL-luettelot, joita voidaan käyttää vain hakemistoon. Jos sen sisältämillä tiedostoilla ei ole ACL-sarjaa, ne perivät vanhemman hakemistonsa oletusarvoisen ACL: n.

2. Aluksi ACL: t voidaan määrittää käyttäjää, ryhmää tai käyttäjää kohti, joka ei ole tiedoston omistavassa ryhmässä.

3. ACL: t asetetaan (ja poistetaan) käyttämällä setfacl-näppäintä joko -m tai -x-vaihtoehdoilla.

Luodaan esimerkiksi ryhmä nimeltään tecmint ja lisätään siihen johndoe ja davenull käyttäjät:

# groupadd tecmint
# useradd johndoe
# useradd davenull
# usermod -a -G tecmint johndoe
# usermod -a -G tecmint davenull

Tarkistetaan, että molemmat käyttäjät kuuluvat täydentävään ryhmään:

# id johndoe
# id davenull

Luodaan nyt hakemisto nimeltä mängialue sisällä/mnt ja tiedosto nimeltä testfile.txt. Asetamme ryhmän omistajan tecmintiksi ja muutamme sen oletuslukuiksi ugo/rwx 770 (lukea, kirjoittaa ja suorittaa sekä tiedoston omistajalle että ryhmän omistajalle myönnetyt oikeudet):

# mkdir /mnt/playground
# touch /mnt/playground/testfile.txt
# chmod 770 /mnt/playground/testfile.txt

Vaihda sitten käyttäjä johndoe ja davenull, siinä järjestyksessä, ja kirjoita tiedostoon:

echo "My name is John Doe" > /mnt/playground/testfile.txt
echo "My name is Dave Null" >> /mnt/playground/testfile.txt

Toistaiseksi niin hyvä. Anna käyttäjän gacanepan kirjoittaa nyt tiedostoon - ja kirjoitusoperaatio epäonnistuu, mikä oli odotettavissa.

Mutta entä jos tarvitsemme käyttäjälle gacanepalle (joka ei ole ryhmän tecmint jäsen) kirjoitusoikeudet tiedostoon /mnt/playground/testfile.txt? Ensimmäinen asia, joka voi tulla mieleesi, on kyseisen käyttäjätilin lisääminen ryhmään tecmint. Mutta se antaa hänelle kirjoitusoikeudet KAIKKIIN tiedostoihin, jos kirjoitusbitti on asetettu ryhmälle, emmekä halua sitä. Haluamme vain, että hän pystyy kirjoittamaan tiedostoon /mnt/playground/testfile.txt.

# touch /mnt/playground/testfile.txt
# chown :tecmint /mnt/playground/testfile.txt
# chmod 777 /mnt/playground/testfile.txt
# su johndoe
$ echo "My name is John Doe" > /mnt/playground/testfile.txt
$ su davenull
$ echo "My name is Dave Null" >> /mnt/playground/testfile.txt
$ su gacanepa
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Annetaan käyttäjälle gacanepa luku- ja kirjoitusoikeus tiedostoon /mnt/playground/testfile.txt.

Suorita juurena,

# setfacl -R -m u:gacanepa:rwx /mnt/playground

ja olet lisännyt onnistuneesti ACL: n, jonka avulla gacanepa voi kirjoittaa testitiedostoon. Vaihda sitten käyttäjän gacanepa-tilaan ja yritä kirjoittaa tiedostoon uudelleen:

$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Jos haluat tarkastella tietyn tiedoston tai hakemiston ACL-luetteloita, käytä getfacl:

# getfacl /mnt/playground/testfile.txt

Jos haluat asettaa oletusarvoisen ACL: n hakemistoon (jonka sisältö periytyy, ellei korvata toisin), lisää säännön eteen d: ja määritä hakemisto tiedostonimen sijaan:

# setfacl -m d:o:r /mnt/playground

Yllä oleva ACL antaa käyttäjille, jotka eivät ole omistajaryhmiä, lukuoikeuden hakemiston/mnt/leikkikenttä tulevaan sisältöön. Huomaa ero getfacl/mnt/leikkikentän tuotoksessa ennen muutosta ja sen jälkeen:

Virallisen RHEL 7 Storage Administration Guide -oppaan luvussa 20 on lisää ACL-esimerkkejä, ja suosittelen, että katsot sitä ja pidät sitä kätevänä viitteenä.