Vyhledávání na webu

Jak nastavit kvóty souborového systému (disku) na Ubuntu


Kvóta souborového systému je standardní vestavěná funkce v jádře Linuxu. Kvóty určují množství prostoru, který by soubor měl mít k podpoře uživatelských aktivit. Diskové kvóty také omezují počet souborů, které může uživatel v systému vytvořit.

Souborové systémy, které podporují systém kvót, zahrnují xfs, ext2, ext4 a ext3. Přidělování kvót je specifické pro souborový systém a pro každého uživatele. Tento článek obsahuje vše, co potřebujete vědět o práci se souborovým systémem kvót v prostředí Ubuntu pro více uživatelů.

Zde se předpokládá, že používáte systém Ubuntu s uživatelem (tecmint) s právy sudo. Nápady sdílené zde mohou fungovat v jakékoli distribuci Linuxu, pokud použijete správnou techniku implementace.

Krok 1: Instalace kvóty v Ubuntu

Aby byly kvóty připraveny a použitelné, nainstalujte si nástroj příkazového řádku quota pomocí příkazu apt, ale předtím je třeba aktualizovat balíčky systémového softwaru.

sudo apt update

Nyní pomocí následujícího příkazu nainstalujte balíček quota na Ubuntu.

sudo apt install quota

Stisknutím Y a poté ENTER zahájíte proces instalace.

Potvrďte verzi instalace spuštěním příkazu níže. Číslo vaší verze se může lišit od toho, co vidíte níže.

quota --version

Krok 2: Instalace modulu pro jádro kvóty

Pro uživatele s cloudovým virtuálním systémem mohou výchozí instalaci Ubuntu chybět moduly jádra, které podporují použití kvóty. Musíte potvrdit pomocí vyhledávacího nástroje a ujistit se, že dva moduly, quota_v1 a quota _v2, jsou v adresáři /lib/modules.

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

To by měl být výsledek výše uvedeného příkazu.

Nedělejte si starosti s verzemi jádra, pokud jsou přítomny dva moduly. Pokud není nalezen, použijte následující příkaz k instalaci modulů jádra kvóty, jak je znázorněno.

sudo apt install linux-image-extra-virtual

Získáte správné moduly, které potřebujete pro implementaci kvót.

Krok 3: Aktualizace možností připojení souborového systému

Aby byly kvóty aktivní na konkrétním systému, musí být připojen se souvisejícími možnostmi kvót. Můžete to provést aktualizací položky systému souborů v souboru /etc/fstab.

sudo nano /etc/fstab

Měli byste být připraveni soubor náležitě upravit. Rozdíl mezi souborem fstab a desktopovým je rozdíl v tom, jak / neboli kořenový souborový systém reprezentuje celý diskový prostor. Nahraďte řádek (/), který ukazuje na kořenový systém, pomocí řádků níže.

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

Řádky se změní, aby umožnily přístup k userquota a grpquota. Můžete ponechat ten, který není součástí konečné konfigurace. Pokud měl fstab nějaké možnosti, přidejte nové možnosti na konec řádku. Při připojování oddělujte nové položky čárkou, ale bez mezer mezi nimi.

Znovu připojte souborový systém, aby se změny projevily.

sudo mount -o remount /

POZNÁMKA: Ujistěte se, že mezi možnostmi v /etc/fstab nejsou mezery, aby se předešlo takovým chybám.

mount: /etc/fstab: parse error

Ověření použití nových možností při připojování souborového systému do souboru /proc/mounts se provádí pomocí grep. Příkaz zobrazí položku kořenového systému souborů v souboru.

sudo cat /proc/mounts | grep ' / '

Z výstupu můžete vidět dvě možnosti, které jsme nastavili. Je čas zapnout systém kvót.

Krok 4: Povolení diskových kvót na Ubuntu

Nejprve musíte spustit příkaz quotacheck.

sudo quotacheck -ugm /

Příkaz vytvoří dva soubory uživatele kvóty a skupinu kvót, které mají informace o limitu a využití souborového systému. Tyto soubory musí být přítomny, než začnete kvótu používat.

Zde je definice parametrů:

  • -u: symbolizuje, že bude vytvořen soubor uživatelských kvót.
  • -g: označuje, že bude vytvořen soubor kvót založených na skupině.
  • -m: zakáže opětovné připojení systému souborů jako pouze pro čtení a zároveň poskytuje přesné výsledky v prostředí, kde uživatel neustále ukládá soubory. Možnost m není při nastavování povinná.

Pokud není potřeba povolit používání kvót na základě uživatele nebo skupiny, není třeba spouštět možnost quotacheck. Potvrďte to uvedením kořenového adresáře pomocí příkazu ls.

ls /
Ukázkový výstup
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

Pokud do příkazu kvóty nezahrnete parametry u a g, budou odpovídající soubory chybět.

Nyní jsme připraveni zapnout kvótu na kořenovém souborovém systému (/) pomocí následujícího příkazu.

sudo quotaon -v /

Krok 5: Nakonfigurujte kvóty pro jednoho uživatele

K jejich nastavení pro uživatele nebo skupiny můžeme použít příkazy edquota a setquota.

Použití edquota

Příkazy edquota upravují kvóty, například můžeme upravit kvótu patřící uživateli tecmint pomocí:

sudo edquota -u tecmint

Použití volby -u určuje, že kvóta patří uživateli. Pokud potřebujete upravit kvótu, která patří do skupiny, použijte možnost -g. Příkaz otevře soubor pomocí vámi zvoleného textového editoru.

Výstup uvádí uživatelské jméno, uid, souborový systém s aktivními kvótami a použití bloků a inodů. Kvóta založená na inodech omezuje počet souborů a adresářů, které mohou uživatelé vytvořit, bez ohledu na velikost, kterou používají na disku. Většina administrátorů dává přednost kvótě založené na blocích, která řídí místo na disku.

POZNÁMKA: Použití bloků neukazuje, jak se může změnit v závislosti na různých faktorech, jako je například nástroj příkazového řádku, který je hlásí. V rámci kontextových kvót na Ubuntu můžeme předpokládat, že jeden blok je stejný jako jeden kilobajt místa na disku.

Pomocí výše uvedeného příkazového řádku uživatel použije 2032 bloků, což je stejně jako 2032 kB prostoru na /dev/sda1. Hodnota 0 deaktivuje měkké i tvrdé limity.

Každá sada kvót umožňuje nastavení měkkých a tvrdých limitů. Uživatel, který překročí měkký limit, může překročit svou kvótu, ale není mu zabráněno používat více mezer nebo inodů. Uživatel má v takovém případě sedm dní na uplatnění svého měkkého limitu, pokud tak neučiní, je obtížné ukládat nebo vytvářet soubory.

Pevný limit znamená, že vytváření nových bloků nebo inodů se zastaví v okamžiku, kdy limit dosáhnete. Uživatelé budou hlásit varování nebo chyby při provádění běžných úkolů.

Můžeme aktualizovat blokovací kvótu společnosti tecmint tak, aby měla měkký limit 100 MB a 110 MB jako pevný limit.

Po úpravách soubor zavřete a pomocí příkazu kvóty zkontrolujte nastavení nového limitu kvóty uživatele.

sudo quota -vs tecmint

POZNÁMKA: Aby vaši uživatelé měli možnost analyzovat své kvóty bez použití příkazu sudo, musí jim být udělen přístup ke čtení souborů kvót během fáze tvorby ve čtvrtém kroku. Jedním snadným způsobem, jak toho dosáhnout, je vytvořit skupinu uživatele a dát skupině přístup, abyste do ní mohli přidávat uživatele.

Použití setkvóty

setquota aktualizuje informace o kvótě pomocí jediného příkazu bez jakéhokoli interaktivního nastavování. Příkaz vyžaduje uživatelské jméno a nastavení měkkých i tvrdých limitů, které bude blok a inode používat. Budete také muset deklarovat souborový systém, který bude kvóta používat.

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

Příkaz zdvojnásobí limity kvót na základě bloků na 200 megabajtů a 220 megabajtů. Dvě 0 0 znamenají, že pevný i měkký limit nejsou nastaveny, je to požadavek, i když není potřeba nastavovat kvóty založené na inodech.

Jako obvykle použijte k ověření svého postupu příkaz kvóty.

sudo quota -vs tecmint

Krok 6: Generování zpráv o kvótách

Generování zprávy kvóty musí uvádět využití všemi uživateli. Použije se příkaz repquota.

sudo repquota -s /

Výstupem výše je zpráva o kořenovém souborovém systému /. -s dává pokyn repquota k poskytování výsledků ve formátu čitelném pro člověka.

Výchozí doba odkladu blokování je 7 dní. Sloupec odkladu upozorní uživatele na počet dní před odmítnutím přístupu na zdrojový disk.

Krok 7: Nastavte doby odkladu konfigurace

Dodatečná lhůta je doba, po kterou uživatel získá oprávnění pracovat nad rámec výchozího načasování.

sudo setquota -t 864000 864000 /

Příkaz nařídí bloku a inodu, aby měl dobu odkladu 864000 sekund, což je ekvivalent 10 dnů. Nastavení ovlivní všechny uživatele, proto je třeba hodnoty nastavit i v případě, že bloky a inody nebudou používány. Hodnota času musí být v sekundách.

Potvrďte změny a zjistěte, zda se projevily pomocí příkazu:

sudo repquota -s /

Běžné chybové zprávy

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

Výše uvedená chyba je běžná, pokud se pokusíte zapnout kvóty pomocí příkazu qoutaon před pokusem o kontrolu stavu kvóty pomocí příkazu 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.

Tato chyba říká správci, že jádro ji nepodporuje, nebo že máte na počítači špatnou verzi (máme quota_v1 a quota_v2). Pro Ubuntu jsou takové chyby typické na cloudovém virtuálním serveru.

Opravte chybu instalací balíčku Linux-image-extra-virtual pomocí příkazu apt.

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

Chyba je patrná, když aktuální uživatel nemá oprávnění ke čtení souborů kvót. Jako správce musíte provést správné změny oprávnění nebo použít sudo, když potřebujete získat přístup k souborům v systému kvót nebo souboru.

Závěr

V horní části článku jsme začali s nástroji příkazového řádku kvóta a ověřením verze jádra a dále jsme vysvětlili, jak nastavit blokovou kvótu pro jednoho uživatele a jak vygenerovat zprávu o využití kvóty souborového systému.

Článek také popisuje běžné chyby a jak se jim vyhnout použitím dalšího balíčku nebo ověřením verze jádra ve vašem systému.