Artikkel, LINUXmagasinet Sommer 2002 av Andreas-Johann Ulvestad Tittel: Kvotebegrensninger Versjon: 0.9 Tillatelse for gjenprodusering er gitt LINUXmagasinet/Fasit Forlag for en utgave, samt Norwegian Linux Community for listing under openmind.no. Om du kjører et system hvor det er en eller flere brukere som ikke har direkte behov for ubegrenset diskplass, er det greit å holde styr på disse brukerene ved å sette grenser for diskbruken dems. Dette er lett å gjøre på et Linuxsystem på de aller fleste filsystemer. Om du kjører en standard GNU/Linux distribusjon med standard kjerne og filsystem, kan du være sikker på at kvotesetting vil fungere. Om du derimot har rekompilert kjernen selv, bør du sjekke at du har tatt med kvotestøtte. Dette ligger vanligvis under hovedvalget "File systems". Du må opprette filer som 'quota.user' og 'quota.group' eller 'aquota.user' eller 'aquota.group'. De fleste "mainstream" distribusjoner gjør dette for deg om du følger denne oppskriften. Den er iallefall garantert å fungere under Red hat Linux :-). Først og fremst må vi finne ut hvor du ønsker å sette krav til kvoter på systemet ditt. Det vanlige er å gjøre dette på områder som '/home'. Om du derimot ikke har egen partisjon til området '/home', må du sette kvoter som gjelder for hele '/', det vil si roten til hele systemet. Dette viser også en god grunn til å tenke deg litt om før du partisjonerer opp harddisken(e) til et Linuxsystem. Jeg kommer derimot ikke til å komme inn på hvordan du best bør gjøre dette, det er nok materiale for en egen artikkel. Jeg kommer til å anta at du har partisjonert opp en 10GB harddisk på følgende måte: Enhet Montert på Størrelse Kvoter? /dev/hda1 /boot 25M Nei /dev/hda2 / 2G Nei /dev/hda3 /home 7,9G Ja Du burde da ha følgende innhold i /etc/fstab: /dev/hda1 /boot ext3 defaults /dev/hda2 / ext3 defaults /dev/hda3 /home ext3 defaults (Legg merke til at du kan ha navn som 'LABEL=/1' istedenfor '/dev/hda1' samt at de to siste verdiene er fjernet her, siden de har ingen relevans for denne artikkelen) Som vi ser, skal vi aktivere kvoter for /home, også kjent som /dev/hda3. Dette er ganske enkelt, det første vi gjør er å endre i filen /etc/fstab. Fra før av hadde denne linjen verdien 'defaults' i det fjerde feltet, og vi skal endre dette slik at filsystemet automatisk startes opp med kvoter. Vi legger da til verdiene 'usrquota' og 'grpqouta', med andre ord kvoter for både brukere og grupper. Vi skal da sitte med en linje som følger: /dev/hda3 /home ext3 defaults,usrquota,grpquota Da er det vanskelige gjennomført.. det som gjenstår er å aktivere forandringene våre. Vi kan enten starte på nytt, men siden vi ikke leker Windows så gjør vi det enkelt med 'mount -o remount /home'. Etter at dette er gjort (kan ta litt tid), er alt oppe og kjøre. For å sjekke at alt fungerer, kan du kjøre 'quotacheck -v /home'. Du skal da få omtrent følgende i tilbakemelding: quotacheck: Scanning /dev/hda3 [/home] done quotacheck: Checked 126 directories and 10635 files For å redigere kvoten til brukeren 'ole', kjør kommandoen 'edquota ole'. Du kommer så inn i et miljø hvor du redigerer kvoten som en vanlig fil. Om du ønsker å bruke et annet redigeringsprogram, kan du endre dette ved å sette variabelen $EDITOR til det redigeringsprogrammet du foretrekker. Eksempel på kvote: Disk quotas for user ole (uid 500): Filesystem blocks soft hard inodes soft hard /dev/hda3 15664536 0 0 5566 0 0 Vi kan her se at på partisjonen /dev/hda3 har brukeren ole 15664536 blokker brukt, og har ingen grenser på hvor mye han kan bruke. Brukeren eier også 5566 filer, og har ingen grenser på dette. Du kan altså sette grenser både på hvor mye plass en bruker/gruppe skal kunne ha mulighet til å bruke, samt antall filer brukeren/gruppen kan eie. Det er også forskjell på myke (soft) og harde (hard) grenser, hard er den grensen hvor brukeren/gruppen ikke får legge til flere filer. Om brukeren/gruppen når den myke grensen, blir det kun gitt advarsel om at man er faretruende nær grensen. Når du endrer en verdi (for eksempel hvor mange bytes en bruker får bruke), trer endringene umiddelbart igang.