次のページ
前のページ
目次へ
Linux Quota mini-HOWTO
著者: Albert M.C. Tam (bertie@scn.org)
1996.07.27(土) 21:04:38 PDT
訳者: 守岡 太郎 morioka@i.h.kyoto-u.ac.jp/t-morioka@nri.co.jp
1997.01.13(月) 18:14:43 JST
----------------------------------------------------------------------------
Linux で quota を有効にする方法
最終更新: 1996.07.27(土) 21:04:38 PDT
序文: この文書に対する著作権は Albert M.C. Tam (bertie@scn.org) が保有してい
る (訳者注 1)。非営利目的に限り、この文書の使用、コピーおよび配布が許可されて
いる。ただし、著者または編者の氏名およびこの告知を、すべてのコピーおよび関連
文書に明記しなければならない。また、この文書を改変してはならない。この文書が
広く配布され、有効に利用されることを期待する。しかし、明示されていることであ
れ、暗示されることであれ、「一切の保証を行わない」。これ以下の文章化された情
報が正確であることを保証するためにあらゆる努力が払われてきた。しかし、間違い
や、この文章に書かれた情報によって被った被害に対し、著者、編者もしくは管理者
は「責任を負わない」。
(原文)
Preamble: This document is copylefted by Albert M.C. Tam (bertie@scn.org).
Permission to use, copy, distribute this document for non-commerical
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.
この文書では、Linux ホスト上のファイル・システムへ quota をいかに導入するのか
について記述する。ユーザ毎に制限を割り当てる方法だけでなく、quota コマンド群
の様々な使用方法についても記述する。ユーザは、カーネル 2.x を使用しているもの
とする (テストは 2.0.7 で行った)。これよりも古いカーネルを使用しているユーザ
にはアップグレードをすすめる。
あなたが誤りを見つけたり、情報が足りなかったときには、フィードバックやコメン
トを bertie@scn.org まで気軽に送ってほしい。
----------------------------------------------------------------------------
quota とは?
quota を用いることで、ディスク装置の 2 つの面 --- あるユーザが保持できる
inode の数とディスク・ブロックの数 --- の制限を設定することができる。
ユーザがディスク・スペースを無制限に使用することを禁止し、 (ほとんどの時間)
各自のディスク使用量の制限以下にあるように強制する。これが、quota の背後にあ
る考えである。
Linux での quota の現況
quota のサポートはカーネル 1.3.8x において統合されたと聞いている。リリース
2.0 のカーネルにおいてもサポートされている。もしも、あなたのシステムが quota
をサポートしていないのならば、アップグレードをすすめる。
現在、quota は ext2 ファイル・システムにおいてのみ動作する。
Linux で quota を使用するために必要なもの
カーネル
2.x のカーネル・ソースは
ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0/
より入手できる。
quota ソフトウェア
システムに quota ソフトウェアがあるか否かは、あなたの持っている Linux
distribution 次第である。quota ソフトウェアのソースは
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
(訳者注 2)
より入手できる。
----------------------------------------------------------------------------
Linux での quota のセットアップ - Part I: 設定
1. カーネル再構築
カーネルの再構築を行う。
Quota support (CONFIG_QUOTA) [n] y
に y とタイプし、quota のサポートを加える。
2. quota ソフトウェアのコンパイルとインストール
quota ソフトウェアのソースは
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
(訳者注 2)
より入手できる。
先に私があげた quota ソフトウェア・パッケージは既に Linux に移植されており、
2.x カーネルが走っているすべての Linux システムでコンパイルできる。コンパイル
時に、C コンパイラが定数 MNTOPT が未定義であるとエラーを出すかもしれない。そ
の場合には、quota パッケージの mntent.h を /usr/include/mntent.h にコピーする
必要がある。(訳者注 3)
3. システム起動時に quota をチェックし、quota を on にするために init スクリ
プトを修正する。
以下に例を示す:
# 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
教訓としては「いかなる時も」 /etc/fstab 内のファイル・システムがマウントされ
てしまった「後に」quota を on にすることである。さもないと、quota は動作しな
い。システムの init スクリプトの最後で quota を on にするのがよい。好みによっ
ては、システムの init スクリプト内で、ファイル・システムがマウントされた直後
でもよい。
4. /etc/fstab の修正
まだ quota を有効にしていないパーティションは通常以下のように見える。
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults 1 1
ファイル・システムに quota 機能を加えるために、"defaults" という語を含んでい
る 4 番目のフィールドに "usrquota" を加える。
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,usrquota 1 1
5. quota 記録 "quota.user" の作成
この quota の記録ファイル、quota.user の所有者は root にする。 root には、読
み書き許可を与え、他のいかなる許可も与えないようにしておかなければならない。
root として login する。quota を有効にしたいパーティションのマウントの根本に
行き、以下のようにして quota.user を作成する。
touch /partition/quota.user
chmod 600 /partition/quota.user
6. 再起動
システムを再起動し、いままでに行った変更を反映させる。
将来、ほかのパーティションの quota を有効にしたいときには、step 4、5、6 だけ
を行なえばよい。
Linux での quota のセットアップ - Part II: 各ユーザへの quota の割り当て
この操作は edquota コマンドによって行われる。たとえば、コマンド "edquota bob"
を実行すると、vi (もしくは、環境変数 $EDITOR によって示されたエディタ)が起動
する。 quota が有効になっているそれぞれのパーティション上でのユーザ "bob" の
制限を設定する。
Quotas for user bob:
/dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400)
inodes in use: 356, limits (soft = 1000, hard = 1500)
"blocks in use" はパーティション内でユーザが消費しているブロック(キロバイト単
位)の総数である。
"inodes in use" はパーティション内でユーザが消費しているファイルの総数である。
eduota に加え、習熟しておかなければならない用語が 3 つある: Soft Limit、 Hard
Limit、Grace Period である。
Soft Limit
通常、 soft limit は quota されるユーザが、パーティション内で使用できるディス
クの最大量を示している。しかし、grace period が設定されているときには、この最
大量は境界線とみなされる。ディスク使用量がこの線を越えるとユーザは quota 制限
を越えている旨の警告を受ける。
Hard Limit
hard limit は grace period が設定されているときにのみ、意味がある。ディスク使
用の絶対的な制限を示しており、ユーザはこの hard limit を越えることはできない。
Grace Period
コマンド "edquota -t" を実行すると、greace period は soft limit の制限がユー
ザに科されるまで時間となる。時間の単位は sec(秒)、min(分)、hour(時間)、day(日)、
week(週)、month(月)が使用できる。以下は、コマンド "edquota -t" を実行したとき
の例である。
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
0 days の部分を手頃な時間の長さに変更する。私の場合は、7 days (または 1 week)
にしている。
----------------------------------------------------------------------------
様々な quota コマンド群
quotacheck
quotacheck はファイル・システムのディスク使用量を調べ、quota の記録ファイル
"quota.user" を最新の状況に更新するために使われる。システム起動の度に
quotacheck を走らせるか、 cronjob (訳者注 4) を用いて一定期間 (たとえば、1 週
間 ?) に 1 度走らせると良いだろう。
repquota
repquota はひとつのファイル・システムについて、 quota 情報の集計を作成する。
これは 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
quotaon と quotaoff
quotaon は quota 機能を on にするために使われ、quotaoff は off にするために使
われる。実際には 2 つのファイルは同じものである。これらは、システムが起動する
ときと、システムが終了するときに実行される。
----------------------------------------------------------------------------
(訳者注 1)
併記のように原文は、
"Preamble: This document is copylefted by Albert M.C. Tam (bertie@scn.org)."
である。copyleft という単語は GNU プロジェクトの造語である。正確な意味、背景
について知りたい人は、
http://www.gnu.ai.mit.edu/copyleft/copyleft.html
を読むとよいだろう。
また GNU ライセンスについては、
http://pia.plaza.hitachi-sk.co.jp/%7Emasa-k/doc/think-gnu/
の下に情報がある。
(訳者注 2)
1996.12.27 現在、最新版は quota-1.55 であり、
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/
subsystems/quota/utils/quota-1.55.tar.gz
より入手できる。
(訳者注 3)
quota-1.55 の Makefile にバグがあり、# make install を実行するとエラーになる。
これは quotaon と quotaoff にリンクを張る所のエラーである (本文末にあるよう、
これらは、同一のファイルである) 。そのため、手動でリンクを張るなり、Makefile
の修正をするなりを各自で行なう必要がある。
(訳者注 4)
crontab のこと。
----------------------------------------------------------------------------
日本語訳についてのお問い合わせは、
morioka@i.h.kyoto-u.ac.jp
に送っていただきたい。
日本語訳の作成にあたり Linux-JF プロジェクトの以下の方々から多くの助言をいた
だきました。ありがとうございました。
荒木さん yasu@mizuno.riec.tohoku.ac.jp
伊藤さん nozomi@biol.tsukuba.ac.jp
小野さん ono@jf.gee.kyoto-u.ac.jp
小島さん isle@st.rim.or.jp/kojima@criepi.denken.or.jp
小林さん daihei@hucom.co.jp
sugawaraさん hiro@lynx.com
dezawaさん dezawa@miya.fujifilm.co.jp
中谷さん jeanne@mbox.kyoto-inet.or.jp
中野さん nakano@apm.seikei.ac.jp/pfg03175@niftyserve.or.jp
吉山さん yosshy@jedi.seg.kobe-u.ac.jp
訳:守岡太郎 morioka@i.h.kyoto-u.ac.jp/t-morioka@nri.co.jp
1997.01.13(月) 18:14:43 JST
次のページ
前のページ
目次へ