Ulanyjylar we toparlar üçin giriş gözegçilik sanawlaryny (ACL) we disk kwotalaryny nädip düzmeli


Giriş dolandyryş sanawlary (ACL-ler diýlip hem atlandyrylýar) Linux ýadrosynyň aýratynlygy bolup, faýllar we kataloglar üçin adaty ugo/rwx rugsatlary bilen kesgitlenenlerden has inçe görnüşli giriş hukuklaryny kesgitlemäge mümkinçilik berýär.

Mysal üçin, adaty ugo/rwx rugsatlary dürli aýratyn ulanyjylar ýa-da toparlar üçin dürli rugsatlary goýmaga mümkinçilik bermeýär. ACL-ler bilen bu makalada görşümiz ýaly etmek gaty aňsat.

Faýl ulgamynyň ACL-ler bilen laýyklygyny barlamak

Faýl ulgamlaryňyzyň häzirki wagtda ACL-leri goldaýandygyna göz ýetirmek üçin olaryň acl opsiýasy bilen gurnalandygyny barlamaly. Munuň üçin aşakda görkezilişi ýaly ext2/3/4 faýl ulgamlary üçin tune2fs ulanarys. Barlamak isleýän enjamyňyz ýa-da faýl ulgamyňyz bilen/dev/sda1 çalyşyň:

# tune2fs -l /dev/sda1 | grep "Default mount options:"

Bellik: XFS bilen giriş dolandyryş sanawlary gutulardan goldanýar.

Aşakdaky ext4 faýl ulgamynda ACL-leriň/dev/xvda2 üçin açykdygyny görüp bileris:

# tune2fs -l /dev/xvda2 | grep "Default mount options:"

Aboveokardaky buýruk faýl ulgamynyň ACL-leri goldamak üçin gurnalandygyny görkezmeýän bolsa, bu/etc/fstab-da noacl opsiýasynyň bolmagy bilen baglanyşyklydyr.

Bu ýagdaýda aýyryň, faýl ulgamyny aýyryň we täzeden guruň ýa-da/etc/fstab üýtgeşmelerini ýazdyranyňyzdan soň ulgamyňyzy täzeden açyň.

Linux-da ACL-ler bilen tanyşdyrmak

ACL-leriň nähili işleýändigini görkezmek üçin, döredijiler atly bir topary ulanarys we ulanyjylara walterwhite we saulgoodman (hawa, men Breaking Bad fan!) Goşarys:

# groupadd developers
# useradd walterwhite
# useradd saulgoodman
# usermod -a -G developers walterwhite
# usermod -a -G developers saulgoodman

Dowam etmezden ozal, ulanyjylaryň ikisiniň hem döredijiler toparyna goşulandygyny barlalyň:

# id walterwhite
# id saulgoodman

Geliň indi/mnt-da test atly katalog we içindäki acl.txt atly faýl döredeliň (/mnt/test/acl.txt).

Soňra toparyň eýesini döredijilere belläris we deslapky ugo/rwx rugsatlaryny 770-a üýtgederis (şeýlelik bilen faýlyň eýesine-de, toparyň eýesine-de berlen rugsatlary okamak, ýazmak we ýerine ýetirmek):

# mkdir /mnt/test
# touch /mnt/test/acl.txt
# chgrp -R developers /mnt/test
# chmod -R 770 /mnt/test

Garaşylyşy ýaly /mnt/test/acl.txt-a walterwhite ýa-da saulgoodman hökmünde ýazyp bilersiňiz:

# su - walterwhite
# echo "My name is Walter White" > /mnt/test/acl.txt
# exit
# su - saulgoodman
# echo "My name is Saul Goodman" >> /mnt/test/acl.txt
# exit

Häzirlikçe gaty gowy. Şeýle-de bolsa, döredijiler toparynda bolmadyk başga bir ulanyjy üçin /mnt/test/acl.txt ýazmaga ygtyýar bermeli bolanymyzda ýakyn wagtda bir meseläni göreris.

Adaty ugo/rwx rugsatlary täze ulanyjynyň döredijiler toparyna goşulmagyny talap eder, ýöne bu topara degişli ähli obýektlere şol bir rugsat berer. ACL-leriň amatly ýeri.

ACL-ni Linux-da düzmek

ACL-leriň iki görnüşi bar: giriş ACL-leri (bir faýla ýa-da kataloga ulanylýar) we diňe bir katalogda ulanylyp bilinýän deslapky (islege bagly) ACL-ler.

Adaty ACL gurlan katalogyň içindäki faýllaryň özlerinde ACL ýok bolsa, ene-atalar katalogynyň deslapky ACL-sini miras alýarlar.

Ulanyjy gacanepa /mnt/test/acl.txt-a girmäge we ýazmaga rugsat bereliň. Muny etmezden ozal, şol katalogdaky häzirki ACL sazlamalaryna göz aýlalyň:

# getfacl /mnt/test/acl.txt

Soňra faýldaky ACL-leri üýtgediň, okamak/ýazmak üçin rugsatlary görkezmek üçin u: ulanyjy adyny we : rw ulanyň:

# setfacl -m u:gacanepa:rw /mnt/test/acl.txt

Deňeşdirmek üçin faýlda getfacl-y täzeden işlediň. Aşakdaky suratda\Öň we\Soň görkezilýär:

# getfacl /mnt/test/acl.txt

Ondan soň, başgalara/mnt/test katalogynda ýerine ýetirmäge rugsat bermeli bolarys:

# chmod +x /mnt/test

Katalogyň mazmunyna girmek üçin yzygiderli ulanyjynyň şol katalogda rugsatnamalary ýerine ýetirmelidigini ýadyňyzdan çykarmaň.

Ulanyjy gacanepa indi faýla ýazmagy başarmaly. Şol ulanyjy hasabyna geçiň we tassyklamak üçin aşakdaky buýrugy ýerine ýetiriň:

# echo "My name is Gabriel Cánepa" >> /mnt/test/acl.txt

Bir kataloga deslapky ACL bellemek üçin (mazmuny başgaça ýazylmasa mazmuny miras galar), düzgüne çenli d: goşuň we faýl adynyň ýerine bir katalog görkeziň:

# setfacl -m d:o:r /mnt/test
# getfacl /mnt/test/

Aboveokardaky ACL, eýeler toparyndaky ulanyjylara/mnt/test katalogynyň geljekki mazmunyna girişi okamaga mümkinçilik berer. Üýtgeşmeden öň we soň getfacl/mnt/testiň çykyşynyň tapawudyna üns beriň:

Belli bir ACL-i aýyrmak üçin ýokardaky buýruklardaky -m -x bilen çalşyň. Mysal üçin,

# setfacl -x d:o /mnt/test

Ativea-da bolmasa, ähli ACL-leri bir ädimde aýyrmak üçin -b opsiýasyny hem ulanyp bilersiňiz:

# setfacl -b /mnt/test

ACL-leri ulanmak barada has giňişleýin maglumat we mysallar üçin openSUSE Howpsuzlyk Gollanmasynyň 10-njy bölümine, 2-nji bölümine serediň (PDF görnüşinde mugt göçürip alyp bilersiňiz).

Ulanyjylarda we faýl ulgamlarynda Linux Disk kwotalaryny düzüň

Saklaýyş meýdançasy seresaplylyk bilen ulanylmaly we gözegçilikde saklanmaly başga bir çeşme. Munuň üçin kwotalary faýl ulgamy esasynda aýratyn ulanyjylar ýa-da toparlar üçin kesgitläp bolýar.

Şeýlelik bilen, belli bir ulanyja ýa-da belli bir topara rugsat berlen disk ulanylyşyna çäklendirme goýulýar we diskleriňiziň biperwaý (ýa-da nädogry) ulanyjy tarapyndan doldurylmajakdygyna arkaýyn bolup bilersiňiz.

Faýl ulgamynda kwotalary işletmek üçin etmeli ilkinji işiňiz, ony/etc/fstab-daky usrquota ýa-da grpquota (degişlilikde ulanyjy we topar kwotalary üçin) opsiýalary bilen gurmakdyr.

Mysal üçin, geliň/dev/vg00/vol_backups-da ulanyjy esasly kwotalary we/dev/vg00/vol_projects-de toparlaýyn kwotalary işledeliň.

UUID-iň her faýl ulgamyny kesgitlemek üçin ulanylýandygyny ýadyňyzdan çykarmaň.

UUID=f6d1eba2-9aed-40ea-99ac-75f4be05c05a /home/projects ext4 defaults,grpquota 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults,usrquota 0 0

Iki faýl ulgamyny aýyrmak we aýyrmak:

# umount /home/projects
# umount /home/backups
# mount -o remount /home/projects
# mount -o remount /home/backups 

Soňra usrquota we grpquota opsiýalarynyň monta output çykyşynda bardygyny barlaň (aşakda görkezilenlere serediň):

# mount | grep vg00

Netijede, kwotalary başlamak we işletmek üçin aşakdaky buýruklary işlediň:

# quotacheck -avugc
# quotaon -vu /home/backups
# quotaon -vg /home/projects

Saidagny, indi belläp geçen ulanyjy adymyza we topara kwotalary belläliň. Soňra kwotalar bilen kwotalary öçürip bilersiňiz.

Linux Disk kwotalaryny düzmek

Ulanyjy gacanepa üçin ACL-i/home/ätiýaçlyk nusgalaryny goýmak bilen başlalyň, bu oňa şol katalogda okamaga, ýazmaga we rugsatlary bermäge mümkinçilik berer:

# setfacl -m u:gacanepa:rwx /home/backups/

Soň bilen,

# edquota -u gacanepa

Disk giňişligini ulanmagyň ýumşak çägini=900 we gaty çäk=1000 blok (1024 baýt/blok * 1000 blok=1024000 baýt=1 MB) ederis.

Şeýle hem, bu ulanyjynyň döredip biljek faýllarynyň sanyna ýumşak we gaty çäklendirmeler hökmünde 20 we 25 çäk goýup bileris.

Aboveokardaky buýruk, ozal görkezilen çäkleri kesgitläp biljek wagtlaýyn faýl bilen tekst redaktoryny ($EDITOR) işe girizer:

Bu sazlamalar, ulanyjy gacanepa ýa-da 7 günüň dowamynda ýeňillikli möhlet üçin 900 blokly ýa-da 20 kodly çäklere ýeteninde duýduryşyň görkezilmegine sebäp bolar.

Kwotadan artyk ýagdaý şol wagta çenli ýok edilmedik bolsa (mysal üçin, faýllary aýyrmak bilen), ýumşak çäk gaty çäk bolar we bu ulanyja has köp ýer saklamak ýa-da has köp faýl döretmek gadagan ediler.

Synag üçin, ulanyjy gacanepa/test/içerde/home/ätiýaçlyk nusgalary bolan boş 2 MB faýl döretmäge synanyşalyň:

# dd if=/dev/zero of=/home/backups/test1 bs=2M count=1
# ls -lh /home/backups/test1

Görşüňiz ýaly, disk kwotasynyň artykmaçlygy sebäpli ýazmak amaly faýly şowsuz. Diňe ilkinji 1000 KB diske ýazylandygy sebäpli, bu ýagdaýda netije korrumpirlenen faýl bolar.

Şonuň ýaly-da, şol toparyň agzalaryna/home/taslamalaryna girmek üçin döredijiler toparlary üçin ACL döredip bilersiňiz:

# setfacl -m g:developers:rwx /home/projects/

Kwota çäklerini aşakdakylar bilen kesgitläň:

# edquota -g developers

Öň ulanyjy gacanepa bilen edişimiz ýaly.

Theeňillik döwri ýerine ýetirmek arkaly islendik sekunt, minut, sagat, gün, hepde ýa-da aý kesgitlenip bilner.

# edquota -t

we Blok ýeňillik döwri we Inode ýeňillik döwri boýunça bahalary täzelemek.

Blok ýa-da inode ulanylyşyndan tapawutlylykda (ulanyjy ýa-da toparlaýyn kesgitlenýär), ýeňillik döwri ulgam boýunça kesgitlenýär.

Kwotalary habar bermek üçin çalt sanaw üçin ýa-da repquota -v [/ path/to has jikme-jik (sözli) we owadan formatlanan hasabat üçin/faýl ulgamy] .

Elbetde, [ulanyjy] , [group] we [/ path/to/filesystem] belli bir ulanyjy bilen çalyşmak islärsiňiz/barlamak isleýän topar atlaryňyz we faýl ulgamyňyz.

Gysgaça mazmun

Bu makalada ulanyjylar we toparlar üçin giriş dolandyryş sanawlaryny we disk kwotalaryny nädip düzmelidigini düşündirdik. Bularyň ikisini ulanyp, rugsatlary we disk ulanylyşyny has netijeli dolandyryp bilersiňiz.

Kwotalar barada has giňişleýin öwrenmek isleseňiz, Linux Resminamalar Taslamasyndaky Quota Mini-HowTo salgysyna ýüz tutup bilersiňiz.

Elbetde, soraglara jogap bermek üçin bize bil baglap bilersiňiz. Diňe aşakdaky düşündiriş formuny ulanyp tabşyryň, göz aýlamaga has begeneris.