Naujausias pranešimas: Samba kritinis pažeidžiamumas
frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

Failinės sistemos kvotų nustatymas Ubuntu 18.04 OS

iv_vytenisgiv_vytenisg Super Moderator
edited 2020 kovo 10 Į Informaciniai straipsniai
Disko kvotos yra naudojamos apriboti naudotojui ar naudotojų grupui suteiktos disko vietą failinėje sistemoje. Nenaudojant šių limitų naudotojai gali netikėtai užpildyti visą disko vietą sukeldami problemą ne tik sau, bet ir serverio administratoriui, nes dėl visos disko vietos išnaudojimo administratorius galite prarasti galimybę prisijungti prie serverio.

Šioje pamokoje pateiksime instrukciją, kaip komandinės eilutės pagalba įdiegti įrankį kvotų kūrimui, stebėjimui bei nurodysite, kaip nustatyti tam tikras kvotas konkretiems naudotojams.


0. Preliminarūs reikalavimai

- Pamoka yra parengta naudojant mūsų parengtą Ubuntu 18.04 OS šabloną KVM virtualizacijos serveriuose, tačiau taip pat gali tikti ir kitose OS atlikus nedidelius pritaikymus pagal sistemos naudojamas komandas.
- Ne root naudotojas turintis sudo teises. Susikurti naudotoją ir priskirti jam teises galite pagal šią instrukciją.


1. Kvotos įrankio diegimas

Rekomenduojame visų pirma atsinaujinti paketus ir tada idiegti quota:
sudo apt update
sudo apt install quota

Prisijungę prie serverio iš naujo galite patikrinti turimą versiją su šia komanda:
quota --version

Pateikiamas atsakymas:
Quota utilities version 4.04.
. . .

Gali būti įdiegia ir kita versija, tai neturi įtakos.


2. Kvotos branduolio modulio diegimas

Kvotos modulio diegimas gali būti atliekamas tik KVM serveriuose. Konteineriuose, deja, nėra galimybės naudoti kvotų. Modulio diegimui naudokite šią komandą:
sudo apt install linux-image-extra-virtual

Ši komanda įdiegs reikiamus modulius kvotų diegimui. Papildomai reikalingas ir linux-generic paketas kvotų veikimas:
sudo apt -y install linux-generic

Atliekame modulių pridėjimą, kad jie būtų matomi ir po perkrovimo. Tada atlikite perkrovimą:
echo quota_v1 >> /etc/modules
echo quota_v2 >> /etc/modules

reboot

Toliau atnaujinsime failinę sistemą mountinimo funkcijai tam, kad galėtume įjungti kvotos savo root failinėje sistemoje.

3. Failinės sistemos mountinimo funkcijos atnaujinimas

Tam, kad aktyvuoti kvotas konkrečioje failinėje sistemoje, turime mountinti ją su keliomis su kvotomis susijusiomis  parinktimis. Šį veiksmą atliekame atnaujindami failinės sistemos įrašus /etc/fstab/ konfigūraciniuose failuose. Atidarykite failą su savo norimu redaktoriumi:
sudo nano /etc/fstab

Prieš errors=remount-ro įterpkite usrquota,grpquota įrašus:
UUID=dbe3eca9-174a-xxxx-ae9b-f7fcd9edb595 /               ext4  usrquota,grpquota,errors=remount-ro 0       0

Šis veiksmas leidžia įgalinti naudotojo (usrquota) ir grupės (grpquota) kvotas failinėse sistemose. Jeigu jums reikalingas tik vienas iš dviejų kvotų tipų, palikite tik vieną. Svarbiausia, kad nepaliktumėte tarpų ar kitų papildomų simbolių šiame faile.

Perkraukite failinę sistemą tam, kad nauji pasirinkimai pradėtų veikti:
sudo mount -o remount /

Galime patikrinti ar pakeitimai įsigaliojo tikridami /proc/mounts failą. Naudosime grep tam, kad būtų pateikiamas root failinės sistemos įrašas:
cat /proc/mounts | grep ' / '

Atsakymas:
/dev/sda1 / ext4 rw,relatime,quota,usrquota,grpquota,errors=remount-ro,data=ordered 0 0

Patikrinkite ar matote du (arba vieną) pasirinkimus, kuriuos nurodėte. Dabar kai įdiegėme įrankį ir atnaujinome failinę sistemą, galime įjungti kvotų sistemą.


4. Kvotų aktyvavimas

Veiksmai reikalingi prieš aktyvavimą:
sudo quotacheck -ugm /
Šiuo veiksmu sukuriami katalogai /aquota.user ir /aquota.group. Šiuose failuose bus saugomi konkretūs kvotų limitai bei šie failai reikalingi tam, kad galėtume stebėti kvotas.
  • u: - nurodo, kad turi būti sukuriamas naudotojų duomeninis paremtas failas;
  • g: - nurodo, kad turi būti sukuriamas grupių duomeninis paremtas failas;
  • m: - išjungia failų sistemos pakartotinį remountinimąir nurodo kaip read-only, kai vykdomas pradinis kvotų nustatymas.

Patikrinti ar konkretūs kvotoms reikalingi failai sukurti galite paleisdami komandą:
ls /

Jums bus pateikiamas atsakymas:
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  sys  usr  vmlinuz
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   srv   tmp  var  vmlinuz.old

Patikrinus, kad failai yra sukurti galite aktyvuoti kvotas:
sudo quotaon -avug

5. Naudotojų kvotų konfigūravimas

Egzistuoja keli skirtingi būdai kaip galite konfigūruoti naudotojų kvotas. Šiuo atveju mes naudosimte edquota ir setquota komandas.


1. Naudotojų/grupių kvotų administravimas naudojant edquota

 edquota komanda naudojama kvotų tvarkymui. Pavyzdžiui:
sudo edquota -u vardas
-u opcija nurodo, kad bus keičiama naudotojo kvota. Jeigu norite keisti grupės kvotos teises, naudokite -g opciją.

Jums bus atidaromas failas naudojant numatytą teksto redaktorių. Failas panašus į crontab -e naudojamą lentelę. Bus pateikiamas failo turinys į šį:
Disk quotas for user vardas (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda1                        16          0          0          4        0        0

Šioje lentelėje galite apriboti naudotojo kvotas naudojant blocks ir inodes reikšmes. blocks reiškia, kiek kilobaitų šiuo metu naudoja naudotojas /dev/sda1 failinėje sistemoje, inodes - kiek failų bei direktorijų gali turėti naudotojas. Svarbu pažymėti, kad jeigu inodes limitas pasiekamas anksčiau, nebūna atsižvelgiama į blocks limitą ir naudotojas nebegalės kurti naujų failų ar direktorijų.

soft ir hard reiškia kokie galimi limitai ties block ar inodes  reikšmėmis. soft reikšmė suteikia mažesnė ir joje nurodoma, kiek vietos gali naudoti naudotojas netaikant papildomų apribojimų. Jeigu naudotojas viršija šį limitą ir per 7 dienas negrįžta į žemesnę nei soft limitas reikšmę, ji būna pakeičiama į hard ir yra uždraudžiama kurti naujus failus ar direktorijas. hard reikšmė nurodo kokia maksimali vieta ar inode kiekis galimas. Pasiekus šį limitą naudotojas iškart nebegali kurti naujų failų ar direktorijų.

Savo lentelę atnaujinimo su reikšmėmis:
Disk quotas for user vardas (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/vda1                        16       100M       110M         4        0        0
Išsaugokite ir uždarykite failą.


2. Naudotojų/grupių kvotų administravimas naudojant setquota

Skirtingai nei edquota, setquota leidžia koreguoti kvotų reikšmes vienos komandos įvedimu. Pavyzdžiui:
sudo setquota -u vardas 200M 220M 0 0 /
Šia komanda mes dvigubai pakeliame vardas naudotojo blocks reikšmes nekoreguodami inodes reikšmių. Inodes reikšmių nurodytas būtinas net tada kai jų nekeičiame.

Atlikę komandą galite pasitikrinti ar limitai sėkmingai nustatyti:
sudo quota -vs vardas

6. Kvotų ataskaitos

Norint pamatyti visų naudotojų kvotų ataskaitą, naudokite komandą:
sudo repquota -s /

Jums bus pateikiamas atsakymas:
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   1891M      0K      0K          76805     0     0      
daemon    --     60K      0K      0K              3     0     0      
systemd-timesync --      4K      0K      0K              2     0     0      
syslog    --    768K      0K      0K              7     0     0      
_apt      --     20K      0K      0K              3     0     0      
landscape --      8K      0K      0K              4     0     0      
pollinate --      4K      0K      0K              2     0     0      
vardas    --     16K    200M    220M              4     0     0  

Jums pateikiamas / root failinės sistemos naudotojų sąrašas su naudojamais kiekias bei limitais. Kadangi limitus nustatėm tik vardas naudotojui, tik ties juo matysim soft ir hard reiškmes. Taip pat pastebėsite Block grace time: 7 days įrašą ir grace stulpelį. Jeigu bent vienas naudotojas viršys soft limitą, grace stulpelyje matysite kiek laiko jam liko sumažinti savo disko vietą.



7. Grace periodo konfigūravimas

Galime keisti grace periodą, kuriuo naudotojui yra suteikia laiko tarpas sumažinti savo naudojamą disko vietą/inode kiekį. Tam naudojame setquota komandą:
sudo setquota -t 864000 864000 /

Ši komanda nustato tiek blocks tiek inodes limitą į 864000 sekundes, kas yra 10 dienų. Šis nustatymas vykdomas visiems naudotojams ir abi reikšmes turi būti nurodomas net ir tuo atveju jei nenaudojate vienos iš reikšmių (blocks ar inodes) limitavimo. Reikšmes turi būti nurodomas sekundėmis.

Gali patikrinti ar nustatymas įsigaliojo:
sudo repquota -s /

Pateikiamas atsakymas:
. . .
Block grace time: 10days; Inode grace time: 10days . . .

Štai ir viskas. Galite sėkmingai naudotis kvotomis bei jas administruoti. Sėkmės!
Pažymėtos temos:
Norėdami palikti komentarą, turite prisijungti arba registruokis.
Dedikuoti.lt
Šiame forume rasite informaciją kaip atlikti serverio administravimą, konfigūravimą, įvairių tarnybų bei papildomų aplikacijų diegimą. Taip pat pateiksime rekomendacijų, skirtų serverių saugumui, monitoringui ir optimizavimui. Kviečiame prisijungti prie dedikuotų serverių administratorių bendruomenės, dalyvauti diskusijose ir praplėsti savo žinias serverių administravimo srityje!
© 2007 - 2023 Dedikuoti.lt forumas, visos teisės saugumos.