Előszó: E dokumentum szerzői jogának tulajdonosa Albert M.C. Tam (bertie@scn.org). Ezen dokumentum használati, másolási és terjesztési joga ezennel engedélyezett, amennyiben valamennyi másolatban/támogató dokumentumban feltűnik a szerző/szerkesztő neve és ezt a dokumentumot nem változtatják meg. Ez a leírás annak reményében terjesztett, hogy hasznosnak bizonyul, ám SEMMIFÉLE GARANCIÁT nem fejez ki és nem is foglal magában. Amíg valamennyi erőkifejtés arra irányul, hogy biztosítsa az ebben a dokumentumben található információk hitelességét, a szerző/szerkesztő/fenntartó nem vállal felelősséget a hibákért, vagy az e dokumentum felhasználásának eredményéből adodó esetleges sérülésekért.
Ez a dokumentum leírja azt, hogy miként engedélyezzük a fájlrendszer quota-t egy Linux operációs rendszerű számítógépen, megállapítva a quota-t a felhasználók és a csoportok részére éppúgy, mint a különféle quotá-val kapcsolatos parancsok használatát. A quota a 2.x verziójú kernelt alkalmazó felhasználók számára szánt (mostanában a 2.0.27-es verziójú kernelt futtató Red Hat 4.1-en tesztelt*). Azon a felhasználók számára, akik ennél régebbi kernelt futtatnak, szükséges lehet egy újabb kernel verzióra való frissítés ahhoz, hogy kiaknázhassák a kvótából eredő előnyöket.
Érezd magad feljogosítva arra, hogy visszajelzéseket vagy megjegyzéseket küldj a bertie@scn.org címre, amennyiben hibát találnál vagy esetleg bárminemű információ hiányát fedeznéd fel. Méltányolni fogom.
A quota engedi számodra, hogy korlátokat határozz meg a lemezen megvalósuló tárolásra két szempontból is: meghatározhatod a felhasználó és egy felhasználói csoport bitrokában lévő lehetséges csomópontok (inodes) számát, valamint definiálhatod a felhasználóhoz és egy felhasználói csoporthoz tartozó lemezblokkok számát is.
A quota alapötlete mögött az áll, hogy rákényszeritsük a felhasználókat arra, hogy maradjanak a részükre kijelölt lemezfogyasztási korlát alatt, ezzel megfosztva őket a rendszeren található lemezterületek korlátlan felhasználásától.
A quota felhasználónként, valéamint fájlrendszerenként kezelhető. Amennyiben valószínűsíthető, hogy egynél több fájlrendszeren hozhat létre fájlokat a felhasználó, akkor a kvótát valamennyi fájlrendszerre külön-külön be kell állítani.
A quota támogatás - legalábbis amint hallottam - az 1.3.8x verziójú kernelektől kezdődően integrált a kernelbe. Manapság része a 2.0 verziójú Linux kernelnek. Amennyiben a rendszered nem támogatja a kvótát, javaslom a rendszer frissítését (upgrade).
Pillanatnyilag a quota csak az ext2 tipusú fájlrendszerek számára használható.
http://sunsite.unc.edu/pub/Linux/kernel/v2.0 címen.
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz címről.
Konfiguráld újra a kerneled és add hozzá a quota támogatását begépelve egy "y"-t a következő helyen:
Quota support (CONFIG_QUOTA) [n] y
A quota szoftver forrása elérhető az
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz címen.
Íme egy példa:
# Ellenőrizd a quota-t és kapcsold is be/Check quota and then turn quota on. if [ -x /usr/sbin/quotacheck ] then echo "Ellenőrzöm a quotát./Checking quotas. This may take some time." /usr/sbin/quotacheck -avug echo " Kész/Done." fi if [ -x /usr/sbin/quotaon ] then echo "Bekapcsolom a quota-t./Turning on quota." /usr/sbin/quotaon -avug fi
Aranyszabály, hogy a mindíg kapcsoljuk be a quota-t, mihelyt a /etc/fstab fájlban felsorolt fájlrendszereink mountolásra kerültek, ellenkező esetben a quota nem működni. Javaslom, hogy kapcsold be a quota-t a rendszered inicializáló scriptje végén, vagy ha úgy gondolod, akkor rögtön azután, hogy a fájlrendszereid mountolásra kerültek a rendszered inicializáló scriptjében.
Az olyan partíciók, amelyeken még nem engedélyezett a quota, normális esetben valami ilyesféleképpen festenek:
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1
Ahhoz, hogy engedélyezzük a felhasználói quota támogatását egy fájlrendszeren, adjuk hozzá a "usrquota" stringet a negyedik mezőben tartalmazott "defaults" szóhoz (a további részletekért....man fstab).
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1
Helyettesítsük a "usrquota"-t a "grpquota"-val, amennyiben a csoport quota támogatás szükséges a rendszerünkön.
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,grpquota 1 1
Szükséges egyszerre a felhasználói és a csoport quota támogatása is egy fájlrendszeren ?
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1
Minkét quota rekord fájlnak - a quota.user és a quota.group fájlnak is - a root tulajdonában kellene lennie és csak a root részére kellene olvasható- és írhatónak lennie, ezen kívűl senki más részere sem.
Lépjünk be a rendszerbe root-ként. Menjünk annak a partíciónak a gyökerébe, amelyre engedélyezni kívánjuk a quota-t, majd hozzuk létre a quota.user és a quota.gruop fájlokat a következőképpen:
touch /partition/quota.user touch /partition/quota.group chmod 600 /partition/quota.user chmod 600 /partition/quota.group
Most bootoljuk újra a rendszert az általunk kieszközölt változtatások életbeléptetésére.
Jegyezzük meg azt, hogy amennyiben engedélyezni kívánjuk a quota-t további partíciókra is, a jövőben már csak a 4-es, 5-ös és a 6-os lépés szükséges.
Ez a művelet véghezvihető az edquota paranccsal (a további részletekért....man edquota).
Én csak lefuttatnám a quotacheck parancsot az -avug kapcsolókkal ahhoz, hogy hozzájussak a legfrissebb, korábbi fájlrendszer-használathoz, amely szükséges a quota szerkesztéséhez. Ez persze csak egy személyes megszokás, nem pediglen egy mindenáltal megkívánt lépés.
Következzen egy példa. Van egy bob felhasználói azonosítójú (login id) ember a rendszeremen. Az "edquota -u bob" parancs elindítja számomra a vi szövegszerkesztőt (vagy azt a szövegszerkesztőt, amelyiket a $EDITOR környezeti változóban meghatároztam), a bob nevű felhasználó quotá-jának szerkesztéséhez, valamennyi particióra, amelyre a quota engedélyezve lett.
Quotas for user bob: /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) inodes in use: 356, limits (soft = 1000, hard = 1500)
A "block in use/használatben lévő blokkok" a felhasználó által a partíción elhasznált összes blokkok számát jelenti (kilobyte-okban).
Az "inodes in use/használatban lévő csomópontok" a felhasználó tulajdonában lévő fájlok számát jelöli az adott partíción.
Tegyük fel, hogy van egy games nevű csoport a rendszeremen. Az "edquota -g games" parancs ismételten elindítja a számomra a vi szövegszerkesztőt, hogy megszerkeszthessem a games csoport számára a quota-t:
Quotas for group games: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000)
Hogy gyorsan beállítsam a quota-t mondjuk 100 felhasználó részére a rendszeremen ugyanazokra az értékekre, mint amit a bob nevű felhasználóm számára megadtam, előszőr a bob quota információit kellene megszerkeszteni, majd futtatni a következőt:
edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
feltételezve azt, hogy te csh-t használsz és azt, hogy a felhasználói azonosítóid (UID) 500-tól kezdődnek.
Továbbá az edquota esetében létezik 3 tag, amelyekhez hozzá kellene szoktatnod magadat: Soft Limit, Hard Limit és a Grace Period.
Jelzi a partíción lévo quota felhasználó átlagos maximális lemezhasználatát. Amikor kombináljuk a grace period -dal, ez határvonalként fog működni, és azon quota felhasználó részére figyelmeztetéseket fog eredményezni a küszöbön álló quota áthágással kapcsolatosan, amikor ez megtörténik.
A hard limit csak olyankor működik, ha a grace period érték is be van állítva. Ez meghatározza a lemezhasználat abszolút korlátját, amelyet egy quota felhasználó már nem tud túllépni.
Lefuttatva az "edquota" paranccsal, a grace period jelenti azt az időkorlátot, mielőtt a soft limit kierőszakolja a fájlrendszer részére a quota engedélyezését. Az időegységek közül a sec(onds), hour(s), day(s), week(s), és a month(s) értékek használhatók. Amit az "edquota" -t parancsra látni fogsz, az a következő:
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
Változtasd meg a 0 napok (days) részt bármilyen más elfogadhatónak érzett időtartamra. Személy szerint én a 7 napot (7 days) vagy az 1 hetet (1 week) valasztanám.
A quotacheck használatos egy fájlrendszer lemezhasználatának figyelésére és a quota rekord fájl "quota.user" legfrissebb állapotra való frissítésére. A quotacheck futtatása megkívánt a rendszer bootolása idején, vagy a cron munkálatain keresztül (mondjuk, minden héten ?).
A repquota letrehoz egy összesített quota információt a fájlrendszerrel kapcsolatban. Következzen egy egyszerű kimenet (output), amelyet a repquota ad:
# 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
A quotaon a quota számlázás (accounting) bekapcsolására; a quotaoff pedig kikapcsolja azt. Valójában a két fájl megegyezik egymással. Ezek a parancsok a rendszer indításakor (startup) és leállításakor (shutdown) kerülnek futtatásra.