Kako nastaviti kvote datotečnega sistema (diska) v Ubuntuju


Kvota datotečnega sistema je standardna vgrajena funkcija v jedru Linuxa. Kvote določajo količino prostora, ki ga mora imeti datoteka za podporo uporabniškim dejavnostim. Diskovne kvote omejujejo tudi število datotek, ki jih lahko uporabnik ustvari v sistemu.

Datotečni sistemi, ki podpirajo sistem kvot, vključujejo xfs, ext2, ext4 in ext3, če omenimo le nekatere. Dodelitev kvot je specifična za datotečni sistem in za vsakega uporabnika. Ta članek vsebuje vse, kar morate vedeti o delu z datotečnim sistemom kvote v okolju Ubuntu 18.04 za več uporabnikov.

Predpostavljamo, da uporabljate sistem Ubuntu 18.04 z uporabnikom (tecmint), ki ima pravice sudo. Tu posredovane ideje lahko delujejo na katerem koli Linux Distrosu, če uporabljate pravo izvedbeno tehniko.

1. korak: Namestitev kvote v Ubuntu

Da bodo kvote pripravljene in uporabne, z ukazom apt namestite orodje za ukazno vrstico kvote, pred tem pa morate posodobiti sistemske programske pakete.

$ sudo apt update

Zdaj z naslednjim ukazom namestite paket kvot na Ubuntu.

$ sudo apt install quota

Pritisnite Y in nato ENTER, da se začne postopek namestitve.

Namestitveno različico potrdite tako, da zaženete spodnji ukaz. Številka vaše različice se lahko razlikuje od tiste, ki jo vidite spodaj.

$ quota --version

2. korak: Namestitev modula za jedro kvote

Tisti, ki uporabljajo navidezni sistem v oblaku, v privzeti namestitvi Ubuntu morda manjkajo jedrni moduli, ki podpirajo uporabo kvote. Potrditi morate z orodjem za iskanje in zagotoviti, da sta dva modula, quota_v1 in quota _v2, v imeniku/lib/modules.

$ find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

To bi moral biti rezultat zgornjega ukaza.

Ne skrbite glede različic jedra, dokler sta prisotna dva modula. Če ga ne najdete, uporabite naslednji ukaz za namestitev modulov jedra kvote, kot je prikazano.

$ sudo apt install linux-image-extra-virtual

Dobili boste prave module, ki jih potrebujete za izvajanje kvot.

3. korak: Posodabljanje možnosti pritrditve datotečnega sistema

Da bodo kvote aktivne v določenem sistemu, jih je treba namestiti s povezanimi možnostmi kvot. To lahko storite tako, da posodobite vnos datotečnega sistema v datoteki/etc/fstab.

$ sudo nano /etc/fstab

Morali bi biti pripravljeni na ustrezno urejanje datoteke. Razlika med datoteko fstab in namizjem je v tem, kako / ali korenski datotečni sistem predstavlja celoten prostor na disku. Vrstico (/) , ki kaže na korenski sistem, zamenjajte s spodnjimi vrsticami.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Vrstice se bodo spremenile, tako da bodo uporabniške kvote in grpkvote dostopne. Lahko pustite takšnega, ki ni del končne konfiguracije. Če je imel fstab nekaj možnosti, dodajte nove možnosti na koncu vrstice. Med dodajanjem ločite nove predmete z vejico, vendar brez presledkov.

Znova namestite datotečni sistem, da bodo spremembe začele veljati.

$ sudo mount -o remount /

OPOMBA: potrdite, da med možnostmi v/etc/fstab ne obstajajo presledki, da se izognete takim napakam.

mount: /etc/fstab: parse error

Preverjanje uporabe novih možnosti pri namestitvi datotečnega sistema v datoteko/proc/mounts se opravi prek grep. Ukaz prikaže vnos korenskega datotečnega sistema v datoteki.

$ sudo cat /proc/mounts | grep ' / '

Iz izhoda lahko vidite dve možnosti, ki smo jih nastavili. Čas je, da vklopimo sistem kvot.

4. korak: Omogočanje diskovnih kvot v Ubuntuju

Najprej morate zagnati ukaz quotacheck.

$ sudo quotacheck -ugm /

Ukaz ustvari dve datoteki uporabnika kvote in skupine kvot, ki vsebujeta informacije o omejitvi in uporabi datotečnega sistema. Te datoteke morajo biti prisotne, preden začnete uporabljati kvoto.

Tu je definicija parametrov:

  • -u : simbolizira, da bo ustvarjena uporabniška datoteka s kvotami.
  • -g : označuje, da bo ustvarjena datoteka s kvotami, ki temelji na skupini.
  • -m: onemogoči ponovno namestitev datotečnega sistema kot samo za branje, hkrati pa daje natančne rezultate v okolju, kjer uporabnik še naprej shranjuje datoteke. Možnost m med namestitvijo ni obvezna.

Kadar ni treba omogočiti uporabe kvot glede na uporabnika ali skupino, ni treba zagnati možnosti preverjanja kvote. To potrdite tako, da z ukazom ls navedete korenski imenik.

$ ls /
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Če parametra u in g ne vključite v ukaz quotacheck, bodo ustrezne datoteke manjkale.

Zdaj smo pripravljeni vklopiti kvoto v korenskem datotečnem sistemu (/) z naslednjim ukazom.

$ sudo quotaon -v /

5. korak: Konfigurirajte kvote za enega uporabnika

Z ukazoma edquota in setquota jih lahko nastavimo za uporabnike ali skupine.

Ukazi edquota urejajo kvote, na primer lahko uredimo kvoto, ki pripada uporabniku tecmint, z uporabo:

$ sudo edquota -u tecmint

Z uporabo možnosti -u določite, da kvota pripada uporabniku. Če želite urediti kvoto, ki pripada skupini, uporabite možnost -g . Ukaz bo odprl datoteko z urejevalnikom besedila po vaši izbiri.

V izhodnih podatkih so navedena uporabniško ime, uid, datotečni sistem z aktivnimi kvotami in uporaba blokov in inod. Kvota, ki temelji na inodih, omejuje število datotek in imenikov, ki jih lahko ustvarijo uporabniki, ne glede na velikost, ki jo uporabljajo na disku. Večina skrbnikov ima raje kvoto na osnovi blokov, ki nadzoruje prostor na disku.

OPOMBA: uporaba blokov ne prikazuje, kako se lahko spremeni, odvisno od različnih dejavnikov, na primer orodja ukazne vrstice, ki poroča o njih. V okviru kvot za Ubuntu lahko domnevamo, da je en blok enak enemu kilobajtu prostora na disku.

Z uporabo zgornje ukazne vrstice bo uporabnik uporabil 2032 blokov, kar je enako kot 2032 KB prostora na/dev/sda1. Vrednost 0 onemogoči mehko in trdo omejitev.

Vsak niz kvot omogoča nastavitev mehke in trde meje. Uporabnik, ki preseže mejno mejo, lahko preseže svojo kvoto, vendar mu ni dovoljeno uporabljati več presledkov ali inod. V takem primeru ima uporabnik sedem dni časa, da unovči svoj mehki omejitveni prostor, v nasprotnem primeru pa je težko shraniti ali ustvariti datoteke.

Močna omejitev pomeni, da se ustvarjanje novih blokov ali inod ustavi v trenutku, ko dosežete omejitev. Uporabniki bodo med izvajanjem rednih nalog poročali, da so videli opozorila ali napake.

Blokirano kvoto tecminta lahko posodobimo tako, da ima mehko omejitev 100 MB in 110 MB trdne omejitve.

Po urejanju zaprite datoteko in z ukazom kvote preverite nastavitve novih omejitev uporabniške kvote.

$ sudo quota -vs tecmint

OPOMBA: če svojim uporabnikom omogočite, da analizirajo svoje kvote, ne da bi uporabili ukaz sudo, jim je treba v fazi ustvarjanja v četrtem koraku omogočiti dostop do datotek s kvotami. Enostaven način za to je ustvariti uporabniško skupino in skupini omogočiti dostop, tako da lahko vnjo dodate uporabnike.

setquota posodobi informacije o kvoti z enim samim ukazom brez kakršne koli interaktivne nastavitve. Ukaz zahteva uporabniško ime in nastavitev mehkih in trdih omejitev, ki jih bosta uporabila blok in inode. Prav tako boste morali navesti datotečni sistem, ki ga bo uporabila kvota.

$ sudo setquota -u tecmint 200M 220M 0 0 /

Ukaz podvoji omejitve kvot na osnovi blokov na 200 megabajtov in 220 megabajtov. Dve 0 0 označujeta, da tako trda kot mehka meja nista nastavljeni, to je zahteva, tudi kadar ni treba določiti kvot na osnovi inode.

Kot ponavadi z ukazom kvote preverite napredek.

$ sudo quota -vs tecmint

6. korak: Ustvarjanje poročil o kvotah

Če ustvarite poročilo o kvotah, mora navesti uporabo vseh uporabnikov. Uporabi se ukaz repquota.

$ sudo repquota -s /

Zgornji izhod je poročilo o korenskem datotečnem sistemu /. -s navodilom repquota da rezultate v človeško berljivi obliki.

Privzeti čas mirovanja bloka je 7 dni. Milostni stolpec uporabnika opozori na število dni pred zavrnitvijo dostopa do diska z viri.

7. korak: nastavite konfiguracijska obdobja ugodnosti

Grecijsko obdobje je čas, ko uporabnik dobi dovoljenje za delo po privzetem času.

$ sudo setquota -t 864000 864000 /

Ukaz ukaže bloku in inode, da ima obdobje mirovanja 864000 sekund, kar ustreza 10 dnevom. Nastavitev bo vplivala na vse uporabnike, zato je treba vrednosti nastaviti tudi takrat, ko blokov in inod ne bo več treba uporabljati. Vrednost časa mora biti v sekundah.

Potrdite spremembe in preverite, ali so začele veljati z ukazom:

$ sudo repquota -s /

Sporočila o pogostih napakah

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

Zgornja napaka je pogosta, če poskušate vklopiti kvote z ukazom qoutaon, preden poskusite preveriti stanje kvote z ukazom quotacheck.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Ta napaka pove skrbniku, da jedro ne podpira ali pa imate na računalniku napačno različico (imamo quota_v1 in quota_v2). Za Ubuntu so takšne napake pogoste v navideznem strežniku v oblaku.

Napako odpravite tako, da z ukazom apt namestite paket Linux-image-extra-virtual.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

Napaka je opazna, ko trenutni uporabnik nima dovoljenja za branje datotek s kvotami. Kot skrbnik morate pravilno spremeniti dovoljenja ali uporabiti sudo samo, če želite dostopati do datotek v sistemu kvot ali datoteki.

Na vrhu članka smo začeli z orodji ukazne vrstice quota in preverjanjem različice jedra ter nadaljevali z razlago, kako nastaviti kvoto, ki temelji na bloku, za enega uporabnika in kako ustvariti poročilo o kvoti datotečnega sistema uporabe.

Članek zajema tudi pogoste napake in kako se jim izogniti z dodatnim paketom ali preverjanjem različice jedra v vašem sistemu.