Tips記事
» 2001年11月27日 00時00分 UPDATE

ユーザーごとに使用容量制限をしたい

[木田佳克,ITmedia]

 インターネットサービスプロバイダ(ISP)を始め,多くのユーザーを抱えるサーバでは,ユーザーごとにハードディスクの使用容量を決める必要性を迫られるはずだ。このような時に利用する機能が「Quota」である。

 Quoraは,Linuxであればパッケージとして配布されているため,rpmコマンドで次のようにインストールするのが容易だ。

 まず最初に,自分のLinux上で次のように入力して,Quotaがインストールされているかを確認しよう。

# rpm -q quota  ←RPMパッケージでインストールされているか確認
# rpm -ivh quota-2.xxxxxx.i386.rpm
←見当たらなければCD-ROMからインストールする。あるいは,http://www.rpmfind.net/から最新版を探してもよいだろう

 インストール後の設定手順を順番に説明していこう。まず最初にファイルシステム自体でQuotaが有効になっているかを確認する。次のようにfstabファイルを見てみよう。「userquota」が含まれていなければQuotaは有効にならない。

# vi /etc/fstab
.........
/dev/hda3 /home ext2defaults,usrquota 1 1
.........

 次にQuotaの制限情報が記録されるファイルを作成する。rootだけで扱えるようパーミッションを変えておこう。

 次に,どのユーザーにQuotaによる容量制限をかけるかを指定する。ユーザー数が多い場合は,後述するように最初の設定をコピーしていくと容易だ。

# edquota [ユーザー名]

 上記のように指定すると,viの編集画面になる。続いて,Quotaに関する制限設定を記述しよう。

Quotas for user [ユーザー名]:
/dev/hda3: blocks in use: 1, limits (soft = 10, hard = 12)
indoes in use: 1, limits (soft = 4, hard = 6)

 ここで重要なのは,「softlimit」と「hardlimit」というパラメータ指定だ。前者は設定した容量を超えると警告が発せられるもので,後者は設定容量を超えると,以降は書き込みができなくなる指定だ。さらにsoftlimitを超えてからの猶予期間も別に設定する必要があり,次のように指定する。

# edquota -t

 ここでもviの編集画面になる。設定するには,sec, min, hour, day, week, monthの順番で記述すればよい。ちなみに,標準設定では猶予が7日間になっている。

 次のように指定すれば,同じ設定をほかのユーザーに複製することが可能だ。

# edquota -p [コピー元ユーザー名] [コピー先ユーザー名]

 設定後は,各ユーザーのログイン上で次のように「-v」パラメータ指定で確認することができる。定項目を確認することができる。

# su xxxxx  ←制限をかけたユーザーにログインしてみる
$ edquota -v

■表示項目説明

usage 使用可能な容量 [単位:Kバイト]
quota 容量のsoftlimit [単位:Kバイト]
limit 容量のhardlimit [単位:Kバイト]
timeleft 容量がsoftlimitを超えてから利用できる期間
usage 現在のファイル数
quota ファイル数のsoftlimit
limit ファイル数のhardlimit
timeleft ファイル数がsoftlimitを超えてから利用できる期間

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ