RHCSA sērija: ACL (piekļuves kontroles saraksti) izmantošana un Samba/NFS akciju piestiprināšana - 7. daļa


Pēdējā rakstā (RHCSA sērijas 6. daļa) mēs sākām izskaidrot, kā iestatīt un konfigurēt vietējās sistēmas krātuvi, izmantojot parted un ssm.

Mēs arī apspriedām, kā sistēmas sāknēšanas laikā izveidot un pievienot šifrētus sējumus ar paroli. Turklāt mēs brīdinājām jūs izvairīties no kritisku krātuves pārvaldības darbību veikšanas uzmontētām failu sistēmām. Paturot to prātā, mēs tagad pārskatīsim Red Hat Enterprise Linux 7 visbiežāk izmantotos failu sistēmas formātus un pēc tam turpināsim apskatīt gan manuāli, gan automātiski tīkla failu sistēmu (CIFS un NFS) montāžas, izmantošanas un atvienošanas tēmas, kā arī ieviešanu. jūsu sistēmas piekļuves kontroles sarakstu.

Pirms turpināt, lūdzu, pārliecinieties, vai jums ir pieejams Samba serveris un NFS serveris (ņemiet vērā, ka NFSv2 vairs netiek atbalstīts RHEL 7).

Šīs rokasgrāmatas laikā mēs izmantosim mašīnu ar IP 192.168.0.10 ar abiem pakalpojumiem, kas tajā darbojas kā serveri, un RHEL 7 lodziņu kā klientu ar IP adresi 192.168.0.18. Vēlāk rakstā mēs jums pateiksim, kuras paketes jums jāinstalē klientā.

Failu sistēmas formāti RHEL 7

Sākot ar RHEL 7, XFS ir ieviesta kā noklusējuma failu sistēma visām arhitektūrām, pateicoties tās augstajai veiktspējai un mērogojamībai. Pašlaik tas atbalsta faila sistēmas maksimālo lielumu 500 TB atbilstoši jaunākajiem Red Hat un tā partneru veiktajiem galvenās aparatūras testiem.

Tāpat XFS kā noklusējuma pievienošanas opcijas ļauj user_xattr (paplašinātie lietotāja atribūti) un acl (POSIX piekļuves kontroles saraksti) atšķirībā no ext3 vai ext4 (ext2 tiek uzskatīts par novecojušu no RHEL 7 ), kas nozīmē, ka, uzstādot XFS failu sistēmu, jums nav skaidri jānorāda šīs opcijas ne komandrindā, ne mapē/etc/fstab (ja vēlaties atspējot šādas opcijas šajā pēdējā gadījumā, jums skaidri jāizmanto < b> no_acl un no_user_xattr ).

Paturiet prātā, ka paplašinātos lietotāja atribūtus var piešķirt failiem un direktorijiem, lai glabātu patvaļīgu papildu informāciju, piemēram, faila mīmikas veidu, rakstzīmju kopu vai kodējumu, savukārt lietotāja atribūtu piekļuves atļaujas nosaka parastie faila atļauju biti.

Tā kā katrs sistēmas administrators, iesācējs vai eksperts, labi pārzina regulāras piekļuves atļaujas failiem un direktorijiem, kuros īpašniekam, grupai un pasaulei (visām pārējām) tiek noteiktas privilēģijas (lasīšana, rakstīšana un izpilde). . Tomēr, ja jums ir nepieciešams nedaudz atsvaidzināt atmiņu, atsaucieties uz RHCSA sērijas 3. daļu.

Tomēr, tā kā standarta ugo/rwx kopa neļauj konfigurēt atšķirīgas atļaujas dažādiem lietotājiem, tika ieviesti ACL, lai definētu detalizētākas piekļuves tiesības failiem un direktorijiem nekā tās, kuras nosaka parastās atļaujas.

Patiesībā ACL definētās atļaujas ir faila atļauju bitos norādīto atļauju virsraksts. Apskatīsim, kā tas viss tiek izmantots reālajā pasaulē.

1. Pastāv divu veidu ACL: piekļuves ACL, kuras var piemērot vai nu konkrētam failam, vai direktorijam), un noklusējuma ACL, kuras var piemērot tikai direktorijai. Ja tajos esošajiem failiem nav iestatīts ACL, tie pārmanto vecāku direktorija noklusējuma ACL.

2. Vispirms ACL var konfigurēt katram lietotājam, grupai vai lietotājam, kurš nav faila īpašnieku grupā.

3. ACL tiek iestatīti (un noņemti), izmantojot setfacl, attiecīgi izmantojot opcijas -m vai -x.

Piemēram, izveidosim grupu ar nosaukumu tecmint un pievienojiet tai lietotājus johndoe un davenull:

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

Pārbaudīsim, vai abi lietotāji pieder papildu grupas tecmint:

# id johndoe
# id davenull

Tagad izveidosim direktoriju ar nosaukumu rotaļlieta/mnt un iekšpusē failu ar nosaukumu testfile.txt. Mēs iestatīsim grupas īpašniekam tecmint un mainīsim tā noklusējuma ugo/rwx atļaujas uz 770 (lasīšanas, rakstīšanas un izpildes atļaujas, kas piešķirtas gan faila īpašniekam, gan grupas īpašniekam):

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

Pēc tam pārslēdziet lietotāju uz johndoe un davenull šādā secībā un ierakstiet failā:

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

Tik tālu, labi. Ļaujiet lietotājam gacanepa rakstīt failā - un rakstīšanas darbība neizdosies, kas bija gaidāms.

Bet ko tad, ja mums tiešām ir nepieciešams lietotājam gacanepa (kurš nav grupas tecmint dalībnieks), lai būtu rakstīšanas atļaujas vietnē /mnt/playground/testfile.txt? Pirmais, kas jums var ienākt prātā, ir šī lietotāja konta pievienošana grupai tecmint. Bet tas viņam dos rakstīšanas atļaujas VISIEM failiem, ja rakstīšanas bits ir iestatīts grupai, un mēs to nevēlamies. Mēs tikai vēlamies, lai viņš varētu rakstīt uz /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

Piešķirsim lietotājam gacanepa lasīšanas un rakstīšanas piekļuvi /mnt/playground/testfile.txt.

Palaist kā sakni,

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

un jūs būsiet veiksmīgi pievienojis ACL, kas ļauj gacanepa rakstīt testa failā. Pēc tam pārslēdzieties uz lietotāja gacanepa un mēģiniet vēlreiz rakstīt failā:

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

Lai skatītu konkrēta faila vai direktorija ACL, izmantojiet getfacl:

# getfacl /mnt/playground/testfile.txt

Lai iestatītu noklusējuma ACL direktorijai (kuru tā saturs pārmantos, ja vien netiek pārrakstīts citādi), pirms kārtulas pievienojiet d: un faila nosaukuma vietā norādiet direktoriju:

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

Iepriekš norādītā ACL ļaus lietotājiem, kas nav īpašnieku grupa, piekļūt lasīšanas piekļuvei direktorija/mnt/rotaļlaukuma nākotnes saturam. Ievērojiet getfacl/mnt/rotaļlaika izejas atšķirību pirms un pēc izmaiņām:

Oficiālās RHEL 7 krātuves administrēšanas rokasgrāmatas 20. nodaļā ir sniegti vairāk ACL piemēri, un es ļoti iesaku to apskatīt un noderēt kā atsauci.