<!doctype linuxdoc system>

<article>

<title>Kvóta mini-HOGYAN
<author>Ralf van Dooren <tt>r.vdooren@snow.nl</tt>
<date>v0.5, 2003.08.09
<p>
FIGYELEM: a dokumentumot nem sikerült tökéletesen PDF formátumba  konvertálni!
Gyakorlatilag UHU-Linux alatt mégnem tökéletesen kompatibilis nyelvünkkel a
linuxdoc-tools programcsomag (ez nem az UHU-Linux hibája). Aki segíteni akar
(időmilliomosok előnyben :-) kérem írjon a dacas@freemail.hu címre.

<abstract>
Előszó: ezt a dokumentumot Ralf van Dooren (r.vdooren@snow.nl) írta.
Az eredeti szöveg és a dokumentum összeállítása Albert M.C. Tam copyleft-je,
nagyon sok köszönet illeti az eredeti mini-HOGYANért.
Erre a dokumentumra a GNU Free Documentation License előírásai érvényesek.

A jelen dokumentum változatlan formában szabadon használható,
másolható és terjeszthető nem kereskedelmi célból, amennyiben
minden másolatban és ahhoz tartozó dokumentumokban feltüntetik
a szerző/szerkesztő nevét. A dokumentumot annak reményében terjesztjük, hogy
hasznosnak bizonyul, de a szerző SEMMILYEN GARANCIÁT, sem kifejezett, sem beleértett
formában nem vállal. Bár mindent megtettünk a jelen dokumentumban található információk
pontosságának biztosításáért,  a szerző/szerkesztő/karbantartó NEM VÁLLAL FELELŐSSÉPGET
az itt előforduló hibákért, vagy az itt szereplő információk alkalmazásából eredő esetleges
károkért.
<p>
A dokumentum leírja, hogyan engedélyezzük a fájlrendszer-kvótát egy Linuxot futtató
gépen, hogyan rendeljünk kvótát a felhasználókhoz és csoportokhoz, valamint bemutatja
a különböző kvóta-parancsok használatát. A leírás a 2.x verziójú (legutóbb a 2.4.21-esen teszteltük) kernelt
használók részére készült.
<p>
Ha  hibát találsz, vagy ha bármilyen információ hiányzik, nyugodtan küldj visszajelzéseket
 vagy megjegyzéseket az r.vdooren@snow.nl címre. Méltányolni fogom.
</abstract>

<sect>Mi a kvóta?
<sect1>Miért kell a kvóta?
<p>
A kvóta lehetővé teszi, hogy két szempontból is meghatározhass korlátokat a
lemezhasználatra vonatkozóan: az inode-ok számában, amiket egy felhasználó vagy
felhasználói csoport birtokolhat; ezen felül a lemezblokkok számában, amit egy
felhasználóhoz vagy csoporthoz rendelni lehet.
<p>
A kvóta lényege az, hogy a felhasználók arra vannak kényszerítve, hogy
maradjanak a lemezhasználati korlátjuk alatt, megfosztva őket attól a lehetőségtől,
hogy tetszőleges méretű helyet foglalhassanak el a rendszeren. A kvótát felhasználói és
fájlrendszer alapon kezeljük. Ha több mint egy fájlrendszer van ahol a felhasználó
várhatóan létrehozhat fájlokat, akkor a kvótát egyenként mindegyik fájlrendszerre
be kell állítani. Különböző programeszközök léteznek, amelyekkel adminisztrálni
és automatizálni lehet a kvóta beállításokat egy adott rendszeren.

<sect1>A kvóta jelenlegi állapota a Linuxon
<p>
 Jelenleg több jelentős változás is folyamatban van a kvóta működésével kapcsolatban.
 Két különböző módszer létezik. Az eszközök ugyanúgy működnek, a különbség csak
 a használt fájlokban van. Ez a dokumentum az _új_ kvóta-beállítást taglalja. Mivel ez az új beállítás
 nincs benne a hagyományos kernel-forrásban, szükség van néhány "foltra" (patch).
A dokumentumban leírjuk a foltozás módját, és a linuxquota csomag telepítését. Ha már telepítve van
kvóta-szoftver a gépeden, akkor nem biztos, hogy fel kell raknod ezt a foltot és csomagot.
Ha kérdésed van ezzel kapcsolatban, nyugodtan írhatsz nekem e-mailt. A jelen dokumentum egy
későbbi verziójában megpróbálok majd áttekintést adni a disztribúciókról, és kvótakezelés különböző
megvalósításairól.

<sect>Követelmények a kvóta használatához
<p>
<sect1>Kernel
<p>

A 2.x-es kernel-forrás megtalálható a
<url url="http://www.kernel.org" name="http://www.kernel.org">  webhelyen.
Válassz egy hozzád közeli tükörszervert, hogy takarékoskodj a sávszélességgel.
Ha a tar program legújabb változatát használod, letöltheted a .bz2 tömörített fájlt

Csomagold ki a kernelt:
<code>
cd /usr/src
tar jxvf /path/to/linux-2.4.21-tar.bz2      - for bzip2 kernel -
tar zxvf /path/to/linux-2.4.21-tar.gz       - for gzip kernel -
ln -s /usr/src/linux-2.4.21 /usr/src/linux
</code>

<sect1>Kvóta szoftver
<p>

Attól függően, hogy milyen Linux-disztribúciót használsz elképzelhető, hogy a kvóta-szoftver már
telepítve van  a rendszeren. A legfrissebb verzió a SourceForge honlapjáról érhető el, és aktív
fejlesztés alatt áll. A fejlesztők honlapját a <url
url="http://www.sourceforge.net/project/linuxquota"
name="http://www.sourceforge.net/projects/linuxquota" > webhelyen találod meg.

<sect>A kvóta telepítése és beállítása

<sect1>A kernel foltozása

<p>Töltsd le a szükséges kernel-foltot az
<url url="ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota/"
name="ftp::/atrey.karlin.mff.cuni.cz/pub/local/jack/quota/" > webhelyről.

<p>
Válaszd ki az általad használt kernel verzióját, majd töltsd le a foltot. A "patch" parancs segítségével foltozd meg a kernelt.
Amennyiben egynél több folt szükséges a kerneledhez, figyelj arra, hogy a megfelelő sorrendben rakd fel azokat.
Ehhez használhatod ezt a szkriptet (feltételezem, hogy a letöltött foltok a /tmp/quota/ , a kicsomagolt kernel pedig az  /usr/src/linux könyvtárban van) :
<code>
#!/bin/sh

gunzip /tmp/quota/*.gz
cd /usr/src/linux
COUNT=`ls -1 /tmp/quota/*.diff | wc -l`
for I in `seq 1 $COUNT`
do
   patch -p1 < /tmp/quota/quota-2.4.21-$I-*.diff
done
</code>

<sect1>A kernel ismételt beállítása
<p>

A kernel újrafordítása során a kapcsold be a kvóta-támogatást.

<p>A "make menuconfig" vagy "make xconfig" használatakor a Filesystems menü alatt található meg
a szükséges választási lehetőség. Ha szükséged van különleges szolgáltatásokra, itt beállíthatod azokat
(mint például 32 bites UID támogatás)

<p>Mentsd el a beállításokat és fordítsd újra a kernelt. Bizonyosodj meg róla, hogy az új kernel indul el a rendszerindításkor.

<sect1>A kvóta-szoftver lefordítása és telepítése
<p>
Az összes szolgáltatás használatához szükség lehet az új kvóta csomag (quota-package) letöltésére.
A fent említett helyről töltheted le azt.

<p>
A letöltés után végezd el a következő műveleteket:

<code>$ gzip -dc <letöltött file> | tar xvf
$ cd quota-tools  (vagy abba a könyvtárba, ahova letöltötted)
$ ./configure
$ make
$ su
# make install

</code>

<sect1>A rendszerindító szkriptek módosítása a kvóta indításkori ellenőrzésére és bekapcsolására
<p>

Íme egy példa:

<code>&num; Check quota and then turn quota on.
if [ -x /usr/sbin/quotacheck ]
        then
               echo "Checking quotas. This may take some time."
               /usr/sbin/quotacheck -avug
               echo " Done."
        fi
         if [ -x /usr/sbin/quotaon ]
        then
                echo "Turning on quota."
                /usr/sbin/quotaon -avug
        fi
</code>

Aranyszabály, hogy mindig kapcsold be a kvótát, miután az /etc/fstab-beli fájlrendszert becsatoltad,
különben nem fog működni. Ajánlom, hogy kapcsold be a kvótát rögtön azután, hogy a fájlrendszereket
becsatolja a rendszerindító szkripted.

<sect1>Az /etc/fstab módosítása
<p>

Azok a partíciók, amelyeken nem engedélyeztük a kvótát, normál esetben valahogy így
néznek ki:
<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults        1       1
</code>

A felhasználói kvóta-támogatás egy fájlrendszeren való engedélyezéséhez írd be a "usrquota" opciót a
negyedik mezőbe, ami a "defaults" szót tartalmazza (a részletekért lásd "man fstab").

<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,usrquota       1       1
</code>

Cseréld le a "usrquota" szót "grpquota"-ra, ha csoportkvótára van szükséged.

<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,grpquota       1       1
</code>

Mind felhasználói, mind csoportkvótára szükséged van?

<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,usrquota,grpquota       1   1
</code>

<sect1>A kvóta rendszer bekapcsolása
<p>
A kvóta szoftver aktiválásához újra kell indítani a rendszert azért, hogy az elvégzett változtatások
érvényessé váljanak. Ekkor betöltődik az új, kvótát támogató kernel, majd az elkészített rendszerindító szkripteket
is végrehajtja a gép. Az első futásnál a "quotacheck" készíti el a megfelelő fájlokat a kvóta-adatbázis
karbantartásához.

<sect1>A "quotacheck" hozzáadása a crontab-hoz

<p>
Bár a kvóta működik rendszeres ellenőrzés nélkül is, néha hasznos lehet, ha rendszeres időközönként,
mondjuk hetente lefuttatjuk a "quotacheck"-et. Ehhez add hozzá a következő bejegyzést a rendszergazda crontab-jához:
<code>0 3 * * 0 /sbin/quotacheck -avug
</code>

<sect>A kvóta telepítése: programeszközök
<p>

Ezt a műveletet az "edquota" paranccsal tudjuk végrehajtani ("man edquota", ha a részletekre vagy kíváncsi).

<sect1>Kvóta megadása egy adott felhasználóhoz
<p>

Lássunk egy példát. Van egy bob nevű felhasználó a rendszeremen. Az "edquota -u bob" parancs
kiadásával a vi (vagy az &dollar;EDITOR környezeti változóban beállított) szövegszerkesztőben találom magam,
ahol be tudom állítani bob kvótáját mindegyik olyan partíción, ahol az engedélyezett:

<code>Quotas for user bob:
/dev/hda3: blocks in use: 2594, limits (soft = 5000, hard = 6500)
         inodes in use: 356, limits (soft = 1000, hard = 1500)
</code>

A "blocks in use" a felhasználó által egy partíción elfoglalt összes blokkok száma (kilobájtban).

Az "inodes in use" az inode-ok száma, melyeket a felhasználó lefoglal a partíción.

<sect1>Kvóta hozzárendelése egy adott csoporthoz
<p>

Most van egy games nevű csoport a rendszeremen. Az "edquota -g games" ismét a vi-ba léptet,
ahol a games csoport kvótáját tudom beállítani:
<code>        Quotas for group games:
        /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
                inodes in use: 1454, limits (soft = 3000, hard = 4000)
</code>
<sect1>Kvóta hozzárendelése felhasználók csoportjához, ugyanazzal az értékkel
<p>

Ahhoz, hogy gyorsan tudjak a rendszeremen lévő bob nevű felhasználóval azonos beállításokkal
kvótát hozzárendelni mondjuk 100 felhasználóhoz, először kézzel szerkesztem bob adatait, majd
kiadom a következő parancsot:

<code>edquota -p bob `awk -F: '&dollar;3 &gt; 499 {print &dollar;1}' /etc/passwd`
</code>

Feltételezem, hogy csh-t használsz, és a felhasználók UID-jei 500-al kezdődnek.

A kvótához kapcsolódóan 3 olyan fogalom van, amikkel meg kell barátkoznod: lágy korlát (soft limit), 
kemény korlát (hard limit) és türelmi idő (grace period).

<sect1>Lágy korlát (Soft Limit)
<p>

A lágy korlát jelenti azt a maximális mennyiségű lemezterületet, amit egy felhasználó elfoglalhat egy 
partíción. Amikor a türelmi idővel kombináljuk, úgy viselkedik, mint egy határvonal, ami a felhasználót 
üzenetekkel látja el a kvóta-beállítás közelgő megsértéséről, ha azt túllépi.

<sect1>Kemény korlát (Hard Limit)
<p>

A kemény korlát csak akkor működik, ha a türelmi időt is beállítjuk. Ez az abszolút korlátot jelenti a
lemezfelhasználás szempontjából, amit a felhasználó semmiképpen sem léphet túl.

<sect1>Türelmi idő (Grace Period)
<p>

A türelmi idő az az időhatár, melynek leteltéig érvényes a lágy korlát a
kvótát engedélyező fájlrendszereken. Az időértékek lehetnek másodpercben (sec), percben (min), órában
(hour), napban (day), hétben (week) és hónapban (month) megadva. Ezt látod az "edquota -t" parancs kiadásakor:

<code>Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda2: block grace period: 0 days, file grace period: 0 days
</code>

Változtasd meg a "0 days" részt bármely általad megfelelőnek vélt időtartamra.  Személy szerint én 7 napot
(vagyis egy hetet) választottam.

<sect>Egyéb kvótaparancsok
<p>
<sect1>Quotacheck
<p>

A "quotacheck" átvizsgálja a fájlrendszert a lemezhasználat megállapításához, és frissíti az
"aquota.user" adatfájlt a dolgok legfrissebb állása szerint. Azt ajánlom, hogy a parancsot minden
 rendszerindításkor, és egy cron-feladaton keresztül időközönként (mondjuk, minden héten?) futtasd le.

<sect1>Repquota
<p>

A "repquota" összesített kvóta-információkat ad egy fájlrendszerről. Az alábbiakban egy minta található
a parancs kimenetéről:
<code>&num; repquota -a
                                Block limits               File limits
        User            used    soft    hard  grace    used  soft  hard  grace
        root      --  175419       0       0          14679     0     0
        bin       --   18000       0       0            735     0     0
        uucp      --     729       0       0             23     0     0
        man       --      57       0       0             10     0     0
        user1     --   13046   15360   19200            806  1500  2250
        user2     --    2838    5120    6400            377  1000  1500
</code>
<sect1>Quotaon és Quotaoff
<p>

A "quotaon" használatos a kvóta bekapcsolására; a "quotaoff" kikapcsolja azt. Jelenleg mindkét fájl hasonló.
A rendszerindításkor- és leállításkor hajtjuk őket végre.

<sect> Magyar fordítás

<p>

A magyar fordítást <url url="mailto:laca@janus.gimsz.sulinet.hu_NO_SPAM" name="Szijjártó László"> készítette (2002.11.27).
A lektorálást <url url="mailto:tech.translation@axelero.hu_NO_SPAM" name="Varga Zsolt"> végezte el (2003.04.09).
Utoljára <url url="mailto:dacas@freemail.hu_NO_SPAM" name="Daczi László"> frissítette (2003.08.26).
Bármilyen fordítással kapcsolatos észrevételt a <url url="mailto:linuxhowto@sch.bme.hu_NO_SPAM" name="linuxhowto@sch.bme.hu"> címre küldjetek.
A dokumentum legfrissebb változata megtalálható a <url url="http://tldp.fsf.hu/index.html" name="Magyar Linux Dokumentációs Projekt"> honlapján.
</article>
