RHCSA-sarja: ACL-luetteloiden (access Control List) käyttö ja Samban/NFS-osuuksien asentaminen - Osa 7


Edellisessä artikkelissa (RHCSA-sarjan osa 6) aloimme selittää, kuinka paikallista järjestelmätallennustilaa määritetään parted ja ssm avulla.

Keskustelimme myös salattujen taltioiden luomisesta ja liittämisestä salasanalla järjestelmän käynnistyksen aikana. Lisäksi varoitimme sinua välttämään kriittisten tallennustilan hallintatoimintojen suorittamista liitetyissä tiedostojärjestelmissä. Tätä silmällä pitäen tarkastelemme nyt Red Hat Enterprise Linux 7:n eniten käytetyt tiedostojärjestelmämuodot ja jatkamme sitten manuaalisen asentamisen, käytön ja irrotuksen aiheisiin. ja automaattisesti verkkotiedostojärjestelmät (CIFS ja NFS) sekä käyttöoikeusluetteloiden käyttöönotto järjestelmässäsi.

Edellytykset

Ennen kuin jatkat, varmista, että sinulla on Samba- ja NFS-palvelin saatavilla (huomaa, että NFSv2 ei enää tueta RHEL 7).

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

Tiedostojärjestelmän muodot RHEL 7:ssä

RHEL 7:stä alkaen XFS on otettu oletustiedostojärjestelmäksi kaikille arkkitehtuureille korkean suorituskyvyn ja skaalautuvuuden ansiosta. Se tukee tällä hetkellä 500 Tt tiedostojärjestelmän enimmäiskokoa Red Hatin ja sen kumppaneiden valtavirran laitteistolle suorittamien uusimpien testien mukaan.

Lisäksi XFS ottaa käyttöön user_xattr- (laajennetut käyttäjäattribuutit) ja acl (POSIX-käyttöoikeusluettelot) oletusasennusvaihtoehtoina, toisin kuin ext3 tai ext4 (ext2 katsotaan vanhentuneeksi RHEL 7:stä lähtien), mikä tarkoittaa, että sinun ei tarvitse määrittää näitä valintoja erikseen komentorivillä tai tiedostossa /etc/fstab, kun liität XFS-tiedostojärjestelmän (jos haluat poista nämä vaihtoehdot käytöstä tässä viimeisessä tapauksessa, sinun on käytettävä nimenomaisesti no_acl ja no_user_xattr).

Muista, että laajennetut käyttäjäattribuutit voidaan määrittää tiedostoille ja hakemistoille mielivaltaisten lisätietojen, kuten MIME-tyypin, merkistöjen tai tiedoston koodauksen tallentamista varten, kun taas käyttäjän määritteiden käyttöoikeudet määritetään tavallisilla tiedostojen käyttöoikeusbiteillä.

Kulunvalvontaluettelot

Kuten 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 suoritusoikeus). ) omistajalle, ryhmälle ja "maailmalle" (kaikki muut). Voit kuitenkin viitata RHCSA-sarjan osaan 3, jos haluat hieman virkistää muistiasi.

Koska tavallinen ugo/rwx-sarja ei kuitenkaan salli erilaisten käyttöoikeuksien määrittämistä eri käyttäjille, otettiin käyttöön ACL:t, jotta tiedostoille ja hakemistoille voidaan määrittää tarkemmat käyttöoikeudet kuin normaalien käyttöoikeuksien määrittämät.

Itse asiassa ACL:n määrittämät käyttöoikeudet ovat tiedoston käyttöoikeusbittien määrittämien käyttöoikeuksien pääjoukko. Katsotaanpa, kuinka kaikkea tätä käännettynä sovelletaan todellisessa maailmassa.

1. ACL-luetteloita on kahdenlaisia: käyttöoikeusluettelot, joita voidaan käyttää joko tiettyyn tiedostoon tai hakemistoon) ja >oletusarvoiset ACL-luettelot, joita voidaan käyttää vain hakemistoon. Jos niissä olevilla tiedostoilla ei ole ACL-joukkoa, ne perivät päähakemistonsa oletus-ACL:n.

2. Aluksi ACL-luettelot voidaan määrittää käyttäjäkohtaisesti, ryhmäkohtaisesti tai käyttäjäkohtaisesti, joka ei kuulu tiedoston omistavaan ryhmään.

3. ACL:t asetetaan (ja poistetaan) setfaclilla joko -m tai - x vaihtoehtoja.

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

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

Ja tarkistetaan, että molemmat käyttäjät kuuluvat lisäryhmään tecmint:

id johndoe
id davenull

Luodaan nyt /mnt -kansioon playground-niminen hakemisto ja sen sisään tiedosto nimeltä testfile.txt. Asetamme ryhmän omistajaksi tecmint ja muutamme sen oletusarvoiset ugo/rwx-oikeudet 770:ksi (molemmalle myönnetyt luku-, kirjoitus- ja suoritusoikeudet tiedoston omistaja ja ryhmäomistaja):

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

Vaihda sitten käyttäjäksi johndoe ja davenull, tässä 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 hyvin. Annetaan nyt käyttäjän gacanepa kirjoittaa tiedostoon – ja kirjoitus epäonnistuu, mikä oli odotettavissa.

Mutta entä jos tarvitsemme käyttäjällä gacanepa (joka ei ole ryhmän tecmint jäsen) kirjoitusoikeudet tiedostoon /mnt/playground/testfile.txt?< Ensimmäinen asia, joka saattaa 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 voi kirjoittaa 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 pääkäyttäjänä,

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äksi gacanepa 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-ohjelmaa:

getfacl /mnt/playground/testfile.txt

Jos haluat määrittää oletus-ACL:n hakemistolle (jonka sen sisältö perii, ellei toisin kirjoiteta), lisää d: ennen sääntöä ja määritä hakemisto tiedostonimen sijaan:

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

Yllä oleva ACL antaa käyttäjille, jotka eivät kuulu omistajaryhmään, lukuoikeudet /mnt/playground-hakemiston tulevaan sisältöön. Huomaa ero getfacl /mnt/playground:n lähdössä 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 sen kätevänä viitteenä.