次のページ 前のページ 目次へ

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


次のページ 前のページ 目次へ