File: Quota-NL.sgml

package info (click to toggle)
doc-linux-nl 20051127-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 16,408 kB
  • ctags: 94
  • sloc: xml: 47,403; makefile: 312; perl: 193; sh: 116; ansic: 12; csh: 9
file content (360 lines) | stat: -rw-r--r-- 14,065 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
<!doctype linuxdoc system>
<linuxdoc>
<article>

<titlepag>
<title>Quota mini-HOWTO</title>

<author><name>Ralf van Dooren <tt/r.vdooren@snow.nl/<newline>
Vertaald door: Ellen Bokhorst <tt>bokkie_nospam_@nl.linux.org</tt></name></author>

<date>v0.5, 9 aug 2003</date>
<abstract>
Inleiding: Dit document is geschreven door Ralf van Dooren (r.vdooren@snow.nl).
 De oorspronkelijke tekst en opzet van dit document is copyleft-ed door Albert M.C. Tam, veel dank aan hem
voor deze initi&euml;le mini-HOWTO.
 Dit document is uitgegeven onder de GNU Free Documentation License.

Permission to use, copy, distribute this document for non-commercial purposes
 is hereby granted, provided that the author's / editor's name and this notice
 appear in all copies and/or supporting documents; that this document is not
 modified. This document is distributed in hope that it will be useful, but
 WITHOUT ANY WARRANTY, either expressed or implied. While every effort has been
 taken to ensure the accuracy of the information documented herein, the author /
 editor / maintainer assumes NO RESPONSIBILITY for errors, or for damages results
 for the use of the information documented herein.

In dit document wordt beschreven hoe de bestandssysteemquota te activeren op een
Linux host, quota toe te kennen aan gebruikers en groepen, als ook het gebruik van
de diverse quota opdrachten. Het is bedoeld voor gebruikers draaiend kernel 2.x
(recent getest met kernel 2.4.21).

Stuur gerust feedback of commentaar naar r.vdooren@snow.nl mocht je een fout
aantreffen of enige informatie hierin ontbreekt. Ik waardeer het.
</abstract>
</titlepag>

<sect><heading>Wat is quota?</heading>
<sect1><heading>Waar dient quota voor?</heading>

<p>
Met quota kun je limieten opgeven op twee aspecten van diskopslag: het aantal
inodes waarover een gebruiker of groep gebruikers kan beschikken; en het aantal
diskblokken dat door een gebruiker of groep gebruikers kan worden toegewezen.
</p>

<p>
 Het idee achter quota is dat gebruikers worden gedwongen onder hun
diskverbruikslimiet te blijven, hen de mogelijkheid ontnemend om onbeperkt
diskruimte op een systeem in gebruik te nemen. Quota wordt afgehandeld per gebruiker,
per bestandssysteem. Zijn er meer bestandssystemen waarop een gebruiker bestanden
aan kan maken, dan moet quota voor elk bestandssysteem apart worden ingesteld.
Er bestaan diverse utility's om het quota beleid op je systeem te beheren en
automatiseren.
</p>
</sect1>

<sect1><heading>Huidige status van Quota onder Linux</heading>
<p>
Thans zijn er een aantal belangrijke wijzigingen in de wijze waarop quota werkt. Er bestaan
twee verschillende setups. De tools werken hetzelfde, maar er is een verschil in de gebruikte bestanden.
In dit document wordt de setup en werking van de _nieuwe_ quota setup beschreven.
Aangezien de nieuwe setup van quota niet in de reguliere kernelbroncode is opgenomen, is voor deze
setup een patch nodig. Het toepassen van deze patch en de installatie van het linuxquota pakket
zal worden beschreven. Mocht de quota software reeds op je systeem zijn ge&iuml;nstalleerd,
dan hoef je wellicht deze patch en het pakket niet te installeren. Je kunt me mailen als
je hierover vragen hebt. Ik zal proberen een overzicht met Linux distro's en implicaties
in een latere versie van dit document op te nemen.
</p>
</sect1>
</sect>
<sect><heading>Benodigdheden voor quota </heading>
<sect1><heading>Kernel</heading>
<p>
De 2.x kernelbroncode is beschikbaar vanaf <url url="http://www.kernel.org/" name="http://www.kernel.org">
Gebruik alsjeblieft &eacute;&eacute;n van de beschikbare mirrors om bandbreedte te besparen. Als je een recente
versie hebt van tar, dan kun je het .bz2 gecomprimeerde bestand downloaden.
</p>

<p>
Pak de kernel uit:
<code>
cd /usr/src
tar jxvf /path/to/linux-2.4.21-tar.bz2      - voor bzip2 kernel -
tar zxvf /path/to/linux-2.4.21-tar.gz       - voor gzip kernel - 
ln -s /usr/src/linux-2.4.21 /usr/src/linux
</code>
</p>
</sect1>

<sect1><heading>Quota software</heading>
<p>
Afhankelijk van de Linux distributie die je gebruikt, kan de quota software wel of niet of je systeem zijn
ge&iuml;nstalleerd. De meest recente versie van quota is beschikbaar via SourceForge en deze is actief in
ontwikkeling. Je kunt de homepage van de quota-ontwikkeling bereiken op
<url url="http://www.sourceforge.net/project/linuxquota"
name="http://www.sourceforge.net/projects/linuxquota" >.
</p>
</sect1>
</sect>

<sect><heading>Quota setup: installatie en configuratie</heading>
<sect1><heading>Patch de kernel </heading>
<p>Download de patch voor je kernel vanaf:</p>

<p>
<url url="ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota/"
name="ftp::/atrey.karlin.mff.cuni.cz/pub/local/jack/quota/" >.
</p>

<p>
Kies je kernelversie en download de patch(es). Pas de patch toe op de kernel met de opdracht 'patch'.
Is er meer dan 1 patch voor je kernelversie, zorg dan dat je de patches in de juiste volgorde toepast.

Je kunt dit script gebruiken ( Ik ga er van uit dat de gedownloadde patches in /tmp/quota/ staan en de kernel is uitgepakt
in /usr/src/linux) :
</p>

<p>
<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>
</p>
</sect1>

<sect1><heading>Herconfigureer je kernel</heading>
<p>
Herconfigureer je kernel en voeg quota ondersteuning toe.
</p>

<p>Via `make menuconfig` of `make xconfig` kun je de optie ter ondersteuning van quota vinden onder het menu
Filesystems. Je kunt extra opties specificeren als je die nodig hebt, zoals 32-bit UID ondersteuning. 
</p>

<p>Sla de configuratie op en compileer de kernel. Zorg dat de nieuwe kernel zal worden gebruikt bij het herstarten van
het systeem.
</p>
</sect1>

<sect1><heading>Compileer en installeer de quota software</heading>
<p>
Om alle features van het nieuwe quota systeem te kunnen gebruiken, zul je waarschijnlijk het nieuwe quota-pakket moeten
downloaden. Download de nieuwe quota software via de bovenstaande URL.
</p>

<p>
Na het downloaden geef je de volgende opdracht:
<code>
$ gzip -dc &lt;downloaded file> | tar xvf 
$ cd quota-tools  (of in welke directory de software dan ook is geplaatst)
$ ./configure
$ make
$ su
# make install
</code>
</p>
</sect1>

<sect1><heading>Pas het systeeminitscript aan om quota te controleren en zet quota aan gedurende het booten</heading>
<p>

Hier is een voorbeeld:
<code>&num; Controleer de quota en zet het aan.
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>
</p>

<p>
Zet quota altijd aan nadat je bestandssystemen in /etc/fstab zijn gemount, anders zal de quota
niet werken. Ik raad je aan
quota aan te zetten net na het deel waarin bestandssystemen worden gemount in je systeeminitscript.
</p>
</sect1>

<sect1><heading>Pas /etc/fstab aan</heading>
<p>

Partities waar je nog geen quota voor hebt geactiveerd, zien er normaal gesproken ongeveer zo uit:
<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults        1       1
</code>

Voeg "usrquota" toe aan het vierde veld met het woord "defaults" (man fstab voor details) om ondersteuning voor
gebruikersquota toe te voegen:
<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,usrquota       1       1
</code>

Vervang "usrquota" door "grpquota", mocht je quota ondersteuning nodig hebben voor groepen
op een bestandssysteem.
<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,grpquota       1       1
</code>

Heb je zowel gebruikersquota als groepsquota ondersteuning nodig op een bestandssysteem?
<code>/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults,usrquota,grpquota       1   1
</code>
</p>
</sect1>

<sect1><heading>Activeer het quota systeem</heading>
<p>
Voor het activeren van de quota sofware kun je het systeem herstarten willen de wijzigingen die je hebt aangebracht enig
effect hebben. De nieuwe kernel met quota ondersteuning zal worden geladen en de opstartscripts die je net hebt
aangemaakt zullen worden uitgevoerd. Bij een eerste uitvoering, zal quotacheck de juiste bestanden genereren
voor het beheren van de quota databases.
</p>
</sect1>

<sect1><heading>Voeg quotacheck toe aan crontab</heading>
<p>
Alhoewel quota met periodieke controle's hoort te werken, kan het soms helpen quotacheck periodiek uit te voeren, b.v.
wekelijks. Voeg de volgende regel toe aan root's crontab:
<code>0 3 * * 0 /sbin/quotacheck -avug
</code>
</sect1>
</sect>

<sect><heading>Quota setup: tools</heading>
<p>
Deze bewerking wordt uitgevoerd met de opdracht edquota (`man edquota` voor details).
</p>

<sect1><heading>Quota toekennen aan een bepaalde gebruiker</heading>
<p>

Hier is een voorbeeld. Ik heb op mijn systeem een gebruiker met de login-ID bob. Nadat ik
de opdracht "edquota -u bob" heb opgestart, opent vi (of editor aangegeven in de
omgevingsvariabele &dollar;EDITOR) om de quota voor gebruiker bob op elke partitie waarop
quota is geactiveerd te bewerken:
<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>

"blocks in use" is het totaal aantal blokken (in kilobytes) dat een gebruiker
op een partitie heeft verbruikt.

"inodes in use" is het totaal aantal inodes dat een gebruiker op een partitie
heeft verbruikt.
</p>
</sect1>

<sect1><heading>Quota toekennen aan een bepaalde groep</heading>
<p>

Nu heb ik op mijn systeem een groep genaamd games. Na uitvoering van de opdracht "edquota -g games" wordt
de vi editor weer geopend om quota voor de groep games te bewerken:
<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>
</p>
</sect1>

<sect1><heading>Quota toewijzen aan een boel gebruikers met dezelfde waarden</heading>
<p>

Om snel quota's op mijn systeem in te stellen overeenkomstig dezelfde waarden als voor gebruiker bob,
voor zo'n 100 gebruikers, zou ik eerst bob's quota informatie met de hand bewerken en vervolgens
uitvoeren:
<code>edquota -p bob `awk -F: '&dollar;3 &gt; 499 {print &dollar;1}' /etc/passwd`
</code>

in de veronderstelling dat je gebruik maakt van csh, en dat je gebruikers-ID's beginnen bij 500.

In aanvulling op edquota, zijn er nog 3 termen om je bekend mee te maken:
 Soft Limit, Hard Limit, en Grace Period.
</p>
</sect1>

<sect1><heading>Soft Limit</heading>
<p>
_Soft limit_ duidt de maximale hoeveelheid diskverbruik aan die een quota gebruiker
op een partitie tot zijn beschikking heeft. Gecombineerd met grace period, fungeert het
als een grens, waarbij een gebruiker meldingen krijgt van zijn op handen zijnde overtreding
wanneer de quota wordt overschreden.
</p>

<sect1><heading>Hard Limit</heading>
<p>
De hard limit werkt alleen wanneer de grace period is ingesteld. Hiermee wordt de
absolute limiet van het diskverbruik aangegeven, een hard limit die een quota-gebruiker niet kan
overschrijden.
</p>

<sect1><heading>Grace Period</heading>
<p>
Uitgevoerd met de opdracht "edquota -t", is de grace period een tijdslimiet voordat de
soft limit wordt opgelegd voor een bestandssysteem waarop quota is geactiveerd.
Er kan gebruik worden gemaakt van tijdseenheden in seconden (sec), minuten (min),
uren (hours), dagen (days), weken (weeks) en maanden (months).
Dit krijg je te zien bij de opdracht "edquota -t":
<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>

Wijzig het deel '0 days' in een tijdseenheid die je redelijk vindt.
Zelf zou ik kiezen voor 7 dagen (of 1 week).
</p>
</sect1>

<sect><heading>Diverse quota opdrachten</heading>
<sect1><heading>Quotacheck</heading>
<p>

Quotacheck wordt gebruik om een bestandssysteem op diskverbruik te scannen en de
quota recordfile "aquota.user" wordt ermee bijgewerkt tot de meest recente status.
Ik raad je aan de quotacheck tijdens de systeemstart uit te voeren en periodiek via
cronjob (stel, elke week?).
</p>
</sect1>

<sect1><heading>Repquota</heading>
<p>

Repquota produceert een samenvatting van de quota informatie voor een bestandssysteem.
Hier is wat voorbeelduitvoer van repquota:
<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>
</p>
</sect1>

<sect1><heading>Quotaon en Quotaoff</heading>
<p>
Quotaon wordt gebruikt om quota accounting aan te zetten; quotaoff om het uit te zetten.
In werkelijkheid zijn beide bestanden aan elkaar gelijk. Ze worden tijdens de systeemstart en het afsluiten van
het systeem uitgevoerd.
</p>
</sect1>
</sect>
</article>
</linuxdoc>