Základní konfigurace, spuštění Každý souborový systém, na kterém chcete mít aplikované kvóty, musí být přimontovaný s volbou usrquota. I když je v manuálové stránce příkazu mount uvedeno, že se tato volba ignoruje, rozhodně není ignorována různými utilitami - musí být proto uvedena. Volbu uvedeme do souboru /etc/fstab. LABEL=/ / ext3 defaults 1 1 LABEL=/uzivatele /uzivatele ext3 usrquota,grpquota 1 2 V horním řádku (systém souborů /) nejsou kvóty použité. Podobně vypadal před úpravou i druhý řádek. Na serveru poskytujícím diskový prostor by rozhodně měly být uživatelské diskové oblasti oddělené od systémových (root, var, usr a podobně). Diskové kvóty nelze použít na všech typech souborových systémů - určitě se vám nepodaří aplikovat kvóty třeba na FAT nebo NFTS. Bez problémů je to ale u obvyklého systému ext2 a ext3. V nejvyšším adresáři souborového systému vytvořte soubory pro práci kvót. I když podle manuálové stránky by měl příkaz quotacheck vytvořit soubory sám, nevěřte tomu: touch aquota.user touch aquota.group chmod 600 aquota.* U distribuce Red Hat tímto veškerá instalace téměř končí. Všechno ostatní by měly obstarat startovací skripty (konkrétně /etc/rc.d/rc.sysinit). Nejjednodušším pokračováním je restart. Nemůžete-li systém restartovat, proveďte instalaci ručně: quotacheck -avug quotaon -avug Program quotacheck může protestovat, že systém souborů není přimontovaný pouze pro čtení a doporučí vám volbu -m. U distribucí, které nemají kvóty shůry dáno, musíte zajistit startování výše uvedených dvou příkazů při startu systému. Nastavení pro jednotlivé uživatele Příkazem edquota můžeme měnit kvóty jednotlivých uživatelů. Příkaz vyžaduje nejméně jeden parametr - uživatelské jméno. Máte-li v systému více diskových oblastí s kvótami, bude nutné použít ještě parametr -F: edquota -F /home marena V editoru se vám otevře tabulka, ve které můžete nastavit pro uživatele kvóty: Disk quotas for user marena (uid 1030): Filesystem blocks soft hard inodes soft hard /dev/md0 24 1000 1500 3 0 0 Hodnoty upravíme, ukončíme editor - a od té chvíle by měl mít uživatel nastavené kvóty. Grace period - doba, po kterou může mít uživatel překročený soft limit - se nastavuje pro celý disk společně, nelze ji nastavit pro každého uživatele zvlášť. Nastavuje se příkazem edquota -t -F /home Čas lze nastavit od sekund po měsíce - pro označení použijte anglické názvy (seconds, minutes, hours, days, weeks, months). Mezi číslicí a názvem se nesmí objevit mezera. Příkaz edquota volá normálně editor vi. Nevyhovuje-li vám tento editor, můžete ovlivnit chování příkazu edquota pomocí proměnné prostředí EDITOR: export EDITOR=ed Místo editoru ed napište cestu na vlastní oblíbený editor. Ed jsem uvedl jen jako žert (dostanete se z něj písmenem q). Nastavení editoru můžete využít při hromadném zavádění kvót pro větší množství uživatelů. Nastavte vzorové kvóty uživateli standa a pro celou vaši školku pak můžete nastavit kvóty podle tohoto vzoru jednoduchým skriptem: set EDITOR=true for i in majdalenka apolenka veronika verka zdenka majka lenka monika do edquota -p standa $i done unset EDITOR Spolupráce s Windows Kvóty se hlídají i při přístupu k disku z Windows protokolem smb. Při takovém použití kvót se můžete dostat do situace, že ačkoli je na disku nastavená kvóta 10 MB, podaří se vám uložit na disk třeba dva osmimegové soubory (dohromady tedy 16 MB). Příkaz ls -l říká 16, příkaz du -s říká 10, repquota říká 10. Soubory prostě mají menší velikost, než je udávaná. Manuál (samba verze 2) pro tuto situaci doporučuje použití parametru samby strict allocate = yes. Nevýhodou je údajné zpomalení na některých systémech. Při experimentech jsem si nevšiml, že by se Windows nějakým způsobem dozvěděly o překročení soft limitu. Aby se dal efektivně využít mechanismus "grace period", je potřeba dát uživatelům dát vědět jiným způsobem. K tomu se dá využít program repquota. Tím zjistíme využití kvót jednotlivými uživateli a při překročení pošleme uživateli poštu: repquota /home | awk '($2~"-" || $2~"+") && $4!=0 && $3>$4 {print $1, $3, $4, $5;}' | while read user block soft hard; do export user, block, soft, hard (echo "Mate na disku vice dat nez je povoleno:" echo "Na disku: $block" echo "Povoleno: $soft" ) | mail -s "Prekrocene kvoty" $user done Dávka by měla být pravidelně spouštěná z cronu. Uvedený příklad je samozřejmě velmi jednoduchý, uživatelé by jistě uvítali například seznam jimi vlastněných souborů. Zvláště ve sdílených adresářích mívají uživatelé strašný binec a často vůbec netuší, které soubory jsou jejich.