Hoe je Quota onder Linux kunt activeren Albert M.C. Tam <bertie@scn.org> vertaald door Ellen Bokhorst <bokkie@nl.linux.org> Laatst bijgewerkt op: Fri Aug 8 09:45:05 HKT 1997 Dit document beschrijft hoe je bestandssysteem quota op een Linux host kunt activeren, quota voor gebruikers en groepen kunt toewijzen, als ook het gebruik van diverse quota commando's. Het is bedoeld voor gebruikers draaiende onder kernel 2.x (recent getest met RedHat 4.1 draaiend met kernel 2.0.27). Gebruikers die gebruik maken van een oud ere kernel zullen mogelijk een upgrade naar een nieuwere kernel uit moeten voeren om gebruik te kunnen maken van de voordelen van quota. Voel je vrij om feedback of commentaar naar bertie@scn.org te zenden als je een fout vindt, of als er informatie ontbreekt. Ik waardeer het. ______________________________________________________________________ Inhoudsopgave 1. Copyrights 2. Wat is Quota? 3. Huidige Status van Quota onder Linux 4. Benodigdheden voor het gebruik van Quota onder Linux 4.1 Kernel 4.2 Quota software 5. Quota Setup onder Linux - Deel I: De Configuratie 5.1 Herconfigureren van je kernel 5.2 Compileren en installeren van de quota-software 5.3 Wijzig je systeem-initscript om de quota te controleren en tijdens het booten te activeren 5.4 Wijzig /etc/fstab 5.5 Maak een quota-record "quota.user" en "quota.group" aan 5.6 Reboot 6. Quota Setup voor Linux - Part II: Quota aan Gebruikers en Groepen toewijzen 6.1 Toewijzen van quota voor een bepaalde gebruiker 6.2 Quota aan een bepaalde groep toewijzen 6.3 Quota toewijzen voor een groep gebruikers met dezelfde waarde 6.4 Soft Limit 6.5 Hard Limit 6.6 Grace Period 7. Diverse Quota Commando's 7.1 Quotacheck 7.2 Repquota 7.3 Quotaon en Quotaoff ______________________________________________________________________ 1. Copyrights Inleiding: Dit document is copylefted door Albert M.C. Tam (bertie@scn.org) en vertaald door Ellen Bokhorst (bokkie@nl.linux.org). Hierbij is het gebruiken, kopiëren, distribueren van dit document voor niet-commerciële doeleinden toegestaan, op voorwaarde dat de naam van de auteur/naam van de redacteur en deze vermelding in alle kopiën en/of ondersteunende documenten voorkomt; dat dit document niet is gewijzigd. Dit document wordt gedistribueerd in de hoop dat het van nut zal zijn, maar ZONDER ENIGE GARANTIE, zowel uitdrukkelijk als impliciet. Ondanks dat iedere poging is ondernomen om te zorgen voor accuraatheid van de informatie in dit document, neemt de auteur/editor/beheerder GEEN VERANTWOORDELIJKHEID op zich voor fouten, of voor schade voortvloeiend uit het gebruik van de informatie in dit document. 2. Wat is Quota? Quota staat je toe om limieten te specificeren op twee aspecten van gegevensopslag: het aantal inodes per gebruiker of groep gebruikers kan worden beheerst; de hoeveelheid diskblokken die door een gebruiker of een groep gebruikers in beslag kunnen worden genomen. De gedachte achter quota is dat gebruikers worden gedwongen om onder hun diskverbruiklimiet te blijven; hun de mogelijkheid te ontnemen om ongelimiteerde diskruimte op een systeem in gebruik te nemen. Quota wordt per gebruiker, per bestandssysteembasis beheerd. Als er meer dan één partitie is waarop een gebruiker bestanden aan kan maken, dan moet de quota voor iedere partitie apart worden ingesteld. 3. Huidige Status van Quota onder Linux Ik hoorde dat de ondersteuning voor quota sinds kernel versie 1.3.8x in de kernel is geïntegreerd. Nu is het een onderdeel van de 2.0-release van de Linux-kernel. Als je systeem geen quota ondersteunt, kan ik je een upgrade beslist aanraden. Op 't moment werkt quota alleen voor het ext2 type bestandssysteem. 4. Benodigdheden voor het gebruik van Quota onder Linux 4.1. Kernel De 2.x kernel source is beschikbaar vanaf http://metalab.unc.edu/pub/Linux/kernel/v2.0. 4.2. Quota software Afhankelijk van je Linux distributie, zou het kunnen dat je de quota software wel óf niet op je systeem hebt geïnstalleerd. Als dit niet zo is, kun je de quota-software downloaden vanaf: ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz 5. Quota Setup onder Linux - Deel I: De Configuratie 5.1. Herconfigureren van je kernel Herconfigureer je kernel en voeg quota ondersteuning toe door een ``y'' in te tikken bij: ______________________________________________________________________ Quota support (CONFIG_QUOTA) [n] y ______________________________________________________________________ 5.2. Compileren en installeren van de quota-software De source van de quota-software is beschikbaar vanaf ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz 5.3. Wijzig je systeem-initscript om de quota te controleren en tij dens het booten te activeren Hier is een voorbeeld: ______________________________________________________________________ # Controleer quota en zet de quota dan aan. if [ -x /usr/sbin/quotacheck ] then echo "Controle van quotas. Dit kan even duren." /usr/sbin/quotacheck -avug echo "Gereed." fi if [ -x /usr/sbin/quotaon ] then echo "Zet quota aan." /usr/sbin/quotaon -avug fi ______________________________________________________________________ De gouden regel is dat je de quota aanzet nadat je bestandssystemen in /etc/fstab zijn gemount, anders zal quota in gebreke blijven. Ik raad je aan quota aan het einde van je systeem-initscript aan te zetten of, als je wilt, direct achter het deel in je systeem-initscript, waar je bestandssystemen worden gemount. 5.4. Wijzig /etc/fstab Partities waarvan je quota nog niet hebt geactiveerd, zien er normaal gesproken ongeveer zo uit: ______________________________________________________________________ /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1 ______________________________________________________________________ Om gebruikersquota op een bestandssysteem te activeren, voeg je ``usrquota'' toe aan het vierde veld waarin het woord ``defaults'' voorkomt. (man fstab voor details). ______________________________________________________________________ /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1 ______________________________________________________________________ Vervang ``usrquota'' door ``grpquota'', mocht je op een bestandssysteem ondersteuning voor quota nodig hebben. ______________________________________________________________________ /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,grpquota 1 1 ______________________________________________________________________ Zowel gebruikersquota als groepsquota nodig op een bestandssysteem? ______________________________________________________________________ /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1 ______________________________________________________________________ 5.5. Maak een quota-record "quota.user" en "quota.group" aan Van beide quota-recordbestanden, zowel quota.user als quota.group zou root de eigenaar moeten zijn, en de read-write permissie voor root en geen voor alle anderen ingesteld moeten zijn. Login als root. Ga naar de root van de partitie waarop je de quota wilt activeren, en maak dan de bestanden quota.user en quota.group aan met: ______________________________________________________________________ touch /partition/quota.user touch /partition/quota.group chmod 600 /partition/quota.user chmod 600 /partition/quota.group ______________________________________________________________________ 5.6. Reboot Herstart nu je systeem om de aangemaakte wijzigingen te activeren. Merk ook op dat opeenvolgende partities waarop je in de toekomst quota wilt activeren slechts de stappen 4, 5, en 6 vereisen. 6. Quota Setup voor Linux - Part II: Quota aan Gebruikers en Groepen toewijzen Deze bewerking is uitgevoerd met het commando edquota (``man edquota'' voor details). Normaal gesproken zou ik, voorafgaande aan het wijzigen van quota, quotacheck met de vlaggen -avug opstarten, om de laatst bijgewerkte bestandssystemen te verkrijgen. Dit is echter slechts een persoonlijke gewoonte en geen vereiste. 6.1. Toewijzen van quota voor een bepaalde gebruiker Hier is een voorbeeld. Ik heb een gebruiker met de naam bob op mijn systeem. Het commando ``edquota -u bob'' start vi op (of de editor die is aangegeven in mijn omgevingsvariabele $EDITOR) om de quota voor gebruiker bob, op iedere partitie waarop quota is geactiveerd, te wijzigen: ______________________________________________________________________ Quotas for user bob: /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) inodes in use: 356, limits (soft = 1000, hard = 1500) ______________________________________________________________________ ``blocks in use'' is het aantal blokken (in kilobytes), welke een gebruiker op een partitie in gebruik heeft. ``inodes in use'' is het aantal bestanden dat een gebruiker op een partitie heeft. 6.2. Quota aan een bepaalde groep toewijzen Nu heb ik een groep "games" op mijn systeem. "edquota -g games" start de vi editor weer op om quota voor de groep "games" te wijzigen: ______________________________________________________________________ Quotas for group games: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000) ______________________________________________________________________ 6.3. Quota toewijzen voor een groep gebruikers met dezelfde waarde Om snel quotas voor, laten we zeggen 100 gebruikers op mijn systeem, in te stellen, met dezelfde waarde als bij mijn gebruiker bob, zou ik eerst de quota-informatie van bob met de hand wijzigen, en vervolgens het volgende commando opgeven: ______________________________________________________________________ edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd` ______________________________________________________________________ waarbij ik er vanuit ga dat je csh gebruikt, en dat de UID's voor gebruikers beginnen met 500. In aanvullling op edquota, zijn er 3 termen, waarmee je bekend zou moeten zijn : Soft Limit, Hard Limit, en Grace Period. 6.4. Soft Limit ``Soft limit'' geeft de maximale hoeveelheid diskgebruik aan die een quota gebruiker op een partitie heeft. Als dit wordt gecombineerd met grace period, gedraagt het zich als een grens, die als ze wordt overschreden, de quota gebruiker waarschuwingen geeft over z'n dreigende quota overtreding. 6.5. Hard Limit Hard limit werkt alleen als grace period is ingesteld. Het geeft de absolute limiet op het diskgebruik aan; een quota gebruiker kan niet boven deze hard limit gaan. 6.6. Grace Period Uitgevoerd met het commando ``edquota -t'', is grace period een tijdslimiet voordat de soft limit streng wordt gehandhaafd voor een bestandssysteem waarop quota is geactiveerd. Er kan gebruik worden gemaakt van de tijdseenheden seconden, minuten, uren, dagen, weken, en maanden. Dit is wat je met het commando ``edquota -t'' te zien zult krijgen: ______________________________________________________________________ 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 ______________________________________________________________________ Verander het 0 dagen gedeelte naar een tijdslengte die je redelijk vindt. Ik zou persoonlijk kiezen voor 7 dagen (of 1 week). 7. Diverse Quota Commando's 7.1. Quotacheck Quotacheck wordt gebruikt om een bestandssysteem op diskgebruik te scannen, en werkt het quota record bestand "quota.user" bij tot de meest recente staat. Ik raad je aan quotacheck, tijdens de systeemstart, óf periodiek via cronjob (laten we zeggen, iedere week?) op te starten. 7.2. Repquota Repquota produceert een samenvatting van quota informatie voor een bestandssysteem. Hier is een voorbeelduitvoer van repquota: ______________________________________________________________________ # 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 ______________________________________________________________________ 7.3. Quotaon en Quotaoff Quotaon wordt gebruikt om de quota berekening aan te zetten; quotaoff om het uit te zetten. Eigenlijk zijn beide bestanden aan elkaar gelijk. Ze worden tijdens de systeemstart en shutdown uitgevoerd.