Weboldal keresés

RHCSA sorozat: ACL-ek (hozzáférési listák) használata és Samba/NFS megosztások felszerelése – 7. rész


Az utolsó cikkben (RHCSA sorozat, 6. rész) elkezdtük elmagyarázni, hogyan kell beállítani és konfigurálni a helyi rendszertárolót parted és ssm használatával.

Megbeszéltük azt is, hogyan lehet titkosított köteteket létrehozni és felcsatolni jelszóval a rendszerindítás során. Ezenkívül figyelmeztettük, hogy kerülje a kritikus tároláskezelési műveletek végrehajtását a csatlakoztatott fájlrendszereken. Ezt szem előtt tartva most áttekintjük a Red Hat Enterprise Linux 7 leggyakrabban használt fájlrendszer-formátumait, majd folytatjuk a manuális beszerelés, használat és leválasztás témaköreit. és automatikusan hálózati fájlrendszerek (CIFS és NFS), valamint hozzáférés-vezérlési listák megvalósítása a rendszerhez.

Előfeltételek

Mielőtt továbblépne, győződjön meg arról, hogy rendelkezésre áll egy Samba és egy NFS szerver (vegye figyelembe, hogy az NFSv2 már nem támogatott az alkalmazásban RHEL 7).

Ebben az útmutatóban egy IP 192.168.0.10 típusú gépet fogunk használni, amelyen mindkét szolgáltatás fut szerverként, és egy RHEL 7 dobozt használunk kliensként 192.168 IP-címmel. .0,18. A cikk későbbi részében elmondjuk, hogy mely csomagokat kell telepítenie a kliensre.

Fájlrendszer-formátumok az RHEL 7-ben

Az RHEL 7-től kezdődően az XFS minden architektúra alapértelmezett fájlrendszereként került bevezetésre a nagy teljesítmény és a méretezhetőség miatt. Jelenleg 500 TB maximális fájlrendszer-méretet támogat a Red Hat és partnerei által a mainstream hardverre végzett legújabb tesztek szerint.

Ezenkívül az XFS engedélyezi a user_xattr (bővített felhasználói attribútumok) és az acl (POSIX hozzáférés-vezérlési listák) alapértelmezett beillesztési opciókat, ellentétben az ext3-mal vagy az ext4-gyel (ext2 az RHEL 7 óta elavultnak számít), ami azt jelenti, hogy nem kell kifejezetten megadnia ezeket a beállításokat sem a parancssorban, sem az /etc/fstab fájlban, amikor XFS fájlrendszert csatlakoztat (ha azt szeretné ebben az utóbbi esetben tiltsa le ezeket a beállításokat, kifejezetten a no_acl és a no_user_xattr paramétereket kell használnia).

Ne feledje, hogy a kiterjesztett felhasználói attribútumok hozzárendelhetők fájlokhoz és könyvtárakhoz tetszőleges további információk tárolására, mint például a MIME típusa, karakterkészlete vagy a fájl kódolása, míg a felhasználói attribútumok hozzáférési jogosultságait a normál fájlengedély-bitek határozzák meg.

Hozzáférés-vezérlési listák

Mivel minden rendszergazda, legyen az kezdő vagy szakértő, jól ismeri a fájlok és könyvtárak rendszeres hozzáférési engedélyeit, amelyek bizonyos jogosultságokat (olvasási, írási és végrehajtási) határoznak meg. ) a tulajdonos, a csoport és a „világ” (az összes többi) számára. Azonban nyugodtan olvassa el az RHCSA sorozat 3. részét, ha egy kicsit frissítenie kell a memóriáját.

Mivel azonban a szabványos ugo/rwx készlet nem teszi lehetővé különböző engedélyek konfigurálását a különböző felhasználók számára, az ACL-eket vezették be annak érdekében, hogy a fájlok és könyvtárak számára részletesebb hozzáférési jogokat határozhassanak meg, mint a normál engedélyek által meghatározottak.

Valójában az ACL által meghatározott engedélyek a fájlengedély-bitek által meghatározott engedélyek szuperkészletei. Lássuk, hogyan alkalmazzák mindezt a való világban.

1. Az ACL-eknek két típusa van: hozzáférési ACL-ek, amelyek akár egy adott fájlra, akár egy könyvtárra alkalmazhatók) és >alapértelmezett ACL-ek, amelyek csak egy könyvtárra alkalmazhatók. Ha a bennük található fájlok nem rendelkeznek ACL-készlettel, akkor a szülőkönyvtáruk alapértelmezett ACL-jét öröklik.

2. Kezdésként az ACL-ek beállíthatók felhasználónként, csoportonként vagy olyan felhasználónként, amely nem tartozik a fájl tulajdonosi csoportjába.

3. Az ACL-ek beállítása (és eltávolítása) a setfacl használatával történik, a -m vagy a - x opciókat, ill.

Például hozzunk létre egy tecmint nevű csoportot, és adjunk hozzá johndoe és davenull felhasználókat:

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

És ellenőrizzük, hogy mindkét felhasználó a tecmint kiegészítő csoporthoz tartozik:

id johndoe
id davenull

Most hozzunk létre egy playground nevű könyvtárat a /mnt mappán belül, és egy testfile.txt nevű fájlt. A csoport tulajdonosát a tecmint értékre állítjuk, és az alapértelmezett ugo/rwx engedélyeket 770-re módosítjuk (mindkettőnek biztosított olvasási, írási és végrehajtási engedélyek a fájl tulajdonosa és csoporttulajdonosa):

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

Ezután váltson felhasználót johndoe és davenullra, ebben a sorrendben, és írja be a fájlba:

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

Eddig jó. Most hagyjuk, hogy a gacanepa felhasználó írjon a fájlba – és az írási művelet meghiúsul, ami várható volt.

De mi van akkor, ha valóban szükségünk van a gacanepa felhasználóra (aki nem tagja a tecmint csoportnak) írási jogosultságokkal a /mnt/playground/testfile.txt fájlban?< Az első dolog, ami eszébe juthat, az az, hogy hozzáadja ezt a felhasználói fiókot a tecmint csoporthoz. De ez írási engedélyt ad neki az MINDEN fájlhoz, ha az írási bit be van állítva a csoporthoz, és ezt nem akarjuk. Csak azt akarjuk, hogy írhasson a /mnt/playground/testfile.txt fájlba.

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

Adjunk a gacanepa felhasználónak olvasási és írási hozzáférést a /mnt/playground/testfile.txt fájlhoz.

Futtassa rootként,

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

és sikeresen hozzáadott egy ACL-t, amely lehetővé teszi a gacanepa számára, hogy írjon a tesztfájlba. Ezután váltson a gacanepa felhasználóra, és próbáljon meg újra írni a fájlba:

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

Egy adott fájlhoz vagy könyvtárhoz tartozó ACL-ek megtekintéséhez használja a getfacl parancsot:

getfacl /mnt/playground/testfile.txt

Ha alapértelmezett ACL-t szeretne beállítani egy könyvtárhoz (amelyet a tartalma örökölni fog, hacsak másképp nem írják felül), adja hozzá a d: elemet a szabály elé, és adjon meg egy könyvtárat a fájlnév helyett:

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

A fenti ACL lehetővé teszi, hogy a tulajdonosi csoportba nem tartozó felhasználók olvasási hozzáférést kapjanak a /mnt/playground könyvtár jövőbeli tartalmához. Vegye figyelembe a különbséget a getfacl /mnt/playground kimenete között a változás előtt és után:

A hivatalos RHEL 7 Storage Administration Guide 20. fejezete további ACL-példákat tartalmaz, és nagyon ajánlom, hogy tekintse meg, és tartsa kéznél referenciaként.