Serija RHCSA: Korištenje ACL-ova (Liste kontrole pristupa) i montiranje dijeljenja Samba/NFS - 7. dio


U prošlom članku (RHCSA serija, 6. dio) počeli smo objašnjavati kako postaviti i konfigurirati pohranu lokalnog sustava pomoću parted i ssm.

Također smo razgovarali o tome kako stvoriti i montirati šifrirane jedinice s lozinkom tijekom pokretanja sustava. Osim toga, upozorili smo vas da izbjegavate izvođenje kritičnih operacija upravljanja pohranom na montiranim datotečnim sustavima. Imajući to na umu, sada ćemo pregledati najčešće korištene formate datotečnog sustava u Red Hat Enterprise Linux 7, a zatim nastaviti s temama montiranja, korištenja i demontaže ručno i automatski mrežni datotečni sustav (CIFS i NFS), zajedno s implementacijom popisa kontrole pristupa za vaš sustav.

Preduvjeti

Prije nego što nastavite dalje, provjerite imate li Samba poslužitelj i NFS poslužitelj (imajte na umu da NFSv2 više nije podržan u RHEL 7).

Tijekom ovog vodiča koristit ćemo stroj s IP 192.168.0.10 s oba servisa koji rade na njemu kao poslužitelj, i RHEL 7 okvir kao klijent s IP adresom 192.168 .0.18. Kasnije u članku ćemo vam reći koje pakete trebate instalirati na klijenta.

Formati datotečnog sustava u RHEL 7

Počevši od RHEL 7, XFS je uveden kao zadani datotečni sustav za sve arhitekture zbog svojih visokih performansi i skalabilnosti. Trenutačno podržava maksimalnu veličinu datotečnog sustava od 500 TB prema najnovijim testovima Red Hata i njegovih partnera za mainstream hardver.

Također, XFS omogućuje user_xattr (prošireni korisnički atributi) i acl (POSIX popisi kontrole pristupa) kao zadane opcije montiranja, za razliku od ext3 ili ext4 (ext2 smatra se zastarjelim od RHEL 7), što znači da ne morate eksplicitno specificirati te opcije u naredbenom retku ili u /etc/fstab kada montirate XFS datotečni sustav (ako želite onemogućite takve opcije u ovom zadnjem slučaju, morate izričito koristiti no_acl i no_user_xattr).

Imajte na umu da se prošireni korisnički atributi mogu dodijeliti datotekama i direktorijima za pohranjivanje proizvoljnih dodatnih informacija kao što su mime tip, skup znakova ili kodiranje datoteke, dok su dopuštenja pristupa za korisničke atribute definirana uobičajenim bitovima dopuštenja datoteke.

Liste kontrole pristupa

Kao što je svaki administrator sustava, bilo početnik ili stručnjak, dobro upoznat s uobičajenim dozvolama pristupa datotekama i direktorijima, koje određuju određene privilegije (čitanje, pisanje i izvršavanje ) za vlasnika, grupu i "svijet" (svi ostali). Međutim, slobodno pogledajte 3. dio serije RHCSA ako trebate malo osvježiti pamćenje.

Međutim, budući da standardni skup ugo/rwx ne dopušta konfiguriranje različitih dozvola za različite korisnike, uvedeni su ACL-ovi kako bi se definirala detaljnija prava pristupa za datoteke i direktorije od one navedene redovnim dozvolama.

Zapravo, ACL-definirana dopuštenja nadskup su dopuštenja navedenih u bitovima dopuštenja datoteke. Pogledajmo kako se sve ovo prevodi primjenjuje u stvarnom svijetu.

1. Postoje dvije vrste ACL-ova: access ACL-ovi, koji se mogu primijeniti na određenu datoteku ili direktorij) i zadani ACL-ovikoji se mogu primijeniti samo na imenik. Ako datoteke sadržane u njima nemaju postavljen ACL, one nasljeđuju zadani ACL svog nadređenog direktorija.

2. Za početak, ACL-ovi se mogu konfigurirati po korisniku, po grupi ili po korisniku koji nije u grupi vlasnika datoteke.

3. ACL-ovi se postavljaju (i uklanjaju) pomoću setfacl, s -m ili - xopcije, respektivno.

Na primjer, stvorimo grupu pod nazivom tecmint i dodamo joj korisnike johndoe i davenull:

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

I provjerimo da oba korisnika pripadaju dodatnoj grupi tecmint:

id johndoe
id davenull

Kreirajmo sada direktorij pod nazivom playground unutar /mnt i datoteku pod nazivom testfile.txt unutra. Postavit ćemo vlasnika grupe na tecmint i promijeniti njegove zadane dozvole ugo/rwx na 770 (dozvole za čitanje, pisanje i izvršavanje dodijeljene obojici vlasnik i grupni vlasnik datoteke):

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

Zatim prebacite korisnika na johndoe i davenull, tim redoslijedom, i pišite u datoteku:

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

Zasada je dobro. Sada neka korisnik gacanepa piše u datoteku – i operacija pisanja neće uspjeti, što je bilo i za očekivati.

Ali što ako stvarno trebamo da korisnik gacanepa (koji nije član grupe tecmint) ima dopuštenja za pisanje na /mnt/playground/testfile.txt?< Prva stvar koja vam može pasti na pamet je dodavanje tog korisničkog računa grupi tecmint. Ali to će mu dati dopuštenja za pisanje na SVIM datotekama ako je bit za pisanje postavljen za grupu, a mi to ne želimo. Samo želimo da može pisati u /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

Dajmo korisniku gacanepa pristup za čitanje i pisanje na /mnt/playground/testfile.txt.

Pokreni kao root,

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

i uspješno ćete dodati ACL koji omogućuje gacanepa pisanje u testnu datoteku. Zatim prijeđite na korisnika gacanepa i pokušajte ponovno pisati u datoteku:

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

Za pregled ACL-ova za određenu datoteku ili direktorij, koristite getfacl:

getfacl /mnt/playground/testfile.txt

Za postavljanje zadanog ACL-a na direktorij (koji će njegov sadržaj naslijediti osim ako se drugačije ne prebriše), dodajte d: ispred pravila i navedite direktorij umjesto naziva datoteke:

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

Gornji ACL omogućit će korisnicima koji nisu u grupi vlasnika da imaju pristup čitanju budućeg sadržaja direktorija /mnt/playground. Obratite pažnju na razliku u izlazu getfacl /mnt/playground prije i poslije promjene:

Poglavlje 20 u službenom RHEL 7 Vodiču za administraciju pohrane pruža više ACL primjera i toplo preporučujem da ga pogledate i da vam bude pri ruci kao referenca.