SOUBOROVÉ KVÓTY

Pomocí souborových kvót můžeme našim uživatelům omezit počet a velikost souborů pro jednotlivé diskové oddíly. To se nám bude později hodit, aby naši uživatelé nezaplnili pevný disk serveru všemožnými, mnohdy zbytečnými, soubory. Když budou omezeni souborovými kvótami, budou nuceni drahocenným diskovým prostorem šetřit. Abychom mohli na určitých oddílech kvót využívat, je nutné je mít oddělené od hlavního souborového systému ( / ) a zapnutou podporu kvót v jádře (kernelu) Linuxu.

Pozn.: Ve skutečnosti můžeme vytvořit kvóty i když máme pouze jediný souborový systém, ale potom budou naše omezení platit i pro dočasné soubory (v adresáři /tmp), což je oddíl, který by neměl být pro naše uživatele omezený. (Adresář /tmp bychom měli, spíše než omezovat, pravidelně mazat.)

Budeme využívat pouze uživatelské kvóty (nikoliv skupinové) a sice na oddíle /home a /var. Proto je nutné upravit soubor /etc/fstab a přidat parametry quota a usrquota na řádky týkající se těchto oddílů. Výsledek může vypadat např. takto:

/dev/hdb6        /var             ext3          defaults,nosuid,nodev,noexec,usrquota,quota  1 2 /dev/hdb8        /home            ext3          defaults,nosuid,nodev,usrquota,quota  1 2

Pak restartujeme systém nebo znovu připojíme všechny oddíly z tabulky /etc/fstab (příkazem mount -a o remount). Pokud si jsme jisti, že nás nyní nebude rušit žádný proces, můžeme rovnou zapnout kvóty. Jinak se raději příkazem init 1 přepneme do jednouživatelského režimu.

quotacheck -avu

Tímto příkazem potom spustíme program quotacheck, který zjistí velikost souborů uživatelů a připraví vše ostatní pro používání kvót. Pak restartujeme systém. Pokud vše naběhne v pořádku, můžeme našim uživatelům vytvořit kvóty. Pokud víme, že na náš systém budeme přidávat více uživatelů s podobnými potřebami (jako jsou nároky na diskový prostor), můžeme si vytvořit jakési prototypové uživatele a podle nich potom uživatelům přiřazovat kvóty. Vytvoříme prototyp uživatele normal user.

groupadd -g 900 prototypy
useradd -c „Prototyp – normal user“ -g 900 -u 901 \
-s /bin/false normal_user

Prvním příkazem přidáme skupinu prototypy. GID je dobré mít menší než 1000, protože se nejedná o klasického uživatele. Druhý příkaz přidá prototyp uživatele normal user, patřící do skupiny prototypy a jehož UID je opět menší než 1000. Pokud chceme, můžeme si stejným způsobem přidat další prototypy, např. pro významnější uživatele.

edquota normal_user

Po zadání tohoto příkazu se spustí editor (ve většině případů vim) v němž zadáme prototypu nornal_user uživatelskou kvótu.

Disk quotas for user normal_user (uid 901): Filesystem   blocks     soft    hard   inodes    soft   hard /dev/hdb6       0        0       0        0       0       0 /dev/hdb8       0    11000   12000        0     900     950

Z výpisu vidíme, že jsme zadali kvóty pro oddíl hdb8 (v našem případě oddíl /home, kde mají uživatelé své domovské adresáře). Pole soft určuje velikost diskového prostoru (resp. počet souborů), kterou muže uživatel dočasně překročit, pole hard už systém nedovolí překročit nikdy. V našem příkladě jsme definovali hodnotu soft něco přes 10MB (11000KB) a zároveň 900 souborů a hodnotu hard 12000KB, resp. 950 souborů. Uložíme změny a ukončíme editor (ve vimu příkazem :wq).

Nakonec příkazem

edquota -p normal_user kamil tomas jana

přidáme kvóty definovaného prototypu normal_user uživatelům kamil, tomas a jana. Jestli se nám to povedlo, můžeme zkontrolovat příkazem

quota jmeno_uzivatele

Více o uživatelských kvótách se dozvíte v článku Diskové kvóty.