| /homeのユーザーディレクトリをQuotaで容量制限をかける |
別にユーザーディレクトリに制限をかけたくない場合は、飛ばしてください。
quotaとはディスクスペースをユーザごとに制限するソフトです。
利用できる容量を制限したり、作成できるファイル数を制限したりすることができます。
※ Quotaで容量制限する場合、インストールの際、手動でパーテンションを作成しておく必要があります。
※ Quotaのバージョンについて…
Vine2*系ではバージョン1のQuota(quota.user)を使用しており、簡単に設定する事ができました。
Vine3*系から新しいフォーマットのバージョン2のQuota(aquota.user)を使用する事になったのですが、
Vine3*系のKernelはバージョン2のQuota(aquota.user)を認識できずQuota起動時にエラーが出ます。
解決方法として、バージョン1のQuota(quota.user)まで落とす方法も考えたのですが、ON、OFF状態が表示さず、
Webminでの操作ができなかったので、却下しました。
どうしてもバージョン2のQuota(aquota.user)でやりたかった(諦めが悪い…)ので、色々と苦労しましたが、
調べた結果バージョン2のQuota(aquota.user)に対応した設定方法が分かりましたので紹介したいと思います。
※ Vine Linux4系ではこのエラーは解決しています。
| Quotaの設定 |
| まず、Quotaがインストールされているか調べる # rpm -q quota quota-3.06-7vl1 ← これが表示されればインストールされています。 インストールされていない場合は # apt-get install quota 設定ファイル編集 # vi /etc/fstab i キー(入力モード) LABEL=/home /home ext3 defaults 1 2 ↓追記 LABEL=/home /home ext3 defaults,usrquota 1 2 上記のように赤字の部分,usrquotaを追加します。 編集したら Esc キー(コマンドモード) :wq で保存 # mount -o remount /home ← /home をリマウント # mount ← usrquotaが追加されているのを確認 /dev/hda6 on / type ext3 (rw) none on /proc type proc (rw) none on /proc/bus/usb type usbfs (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda7 on /home type ext3 (rw,usrquota) ← 確認 none on /dev/shm type tmpfs (rw) /dev/hda3 on /usr type ext3 (rw) /dev/hda2 on /var type ext3 (rw) # quotacheck -c -ug -v /home ← Quotaデータベースファイルを作成 作成できない場合は下記コマンドでquotaを停止 # quotaoff /home /home/にaquota.userという 名前のQuotaファイルが作成されているか確認 # ls -l /home/aquota.user -rw------- 1 root root 7168 Jan 10 21:00 /home/aquota.user ※ Vine Linux3系ではQuotaの起動でエラーが出ますので次項目の対処法を施してください。 # quotaon -u /home ← Quota起動 # quotaon -p -a ← Quotaが有効になっているかチェック group quota on / (/dev/hda6) is off user quota on / (/dev/hda6) is off group quota on /boot (/dev/hda1) is off user quota on /boot (/dev/hda1) is off group quota on /home (/dev/hda7) is off user quota on /home (/dev/hda7) is on ← ユーザーの/homeが「on」になってっればOK group quota on /usr (/dev/hda3) is off user quota on /usr (/dev/hda3) is off group quota on /var (/dev/hda2) is off user quota on /var (/dev/hda2) is off |
| VineLinux3系でQuota起動時のエラー対処法 |
下記のエラーでquota が起動できず、皆さん悩んでいらっしゃる事と思います。 管理人Yosiもこのエラーでかなりハマりました。 # quotaon -u /home quotaon: using /home/aquota.user on /dev/sda3 [/home]: そのようなプロセスはありません quotaon: Quota format not supported in kernel. # insmod quota_v2 ← まずquota_v2モジュールを読み込みます。 # quotacheck -avum ← Quotaデータベースファイル更新 # quotaon -u /home ← Quota起動 # quotaon -p -a ← Quotaが有効になっているかチェック group quota on / (/dev/hda6) is off user quota on / (/dev/hda6) is off group quota on /boot (/dev/hda1) is off user quota on /boot (/dev/hda1) is off group quota on /home (/dev/hda7) is off user quota on /home (/dev/hda7) is on ← ユーザーの/homeが「on」になってっればOK group quota on /usr (/dev/hda3) is off user quota on /usr (/dev/hda3) is off group quota on /var (/dev/hda2) is off user quota on /var (/dev/hda2) is off 起動時にquota_v2モジュールを読み込むように設定 # vi /etc/modprobe.conf iキー(入力モード) alias quota quota_v2 ← 追記 記載したら Esc キー(コマンドモード):wqで保存 # vi /etc/modules.conf iキー(入力モード) alias quota quota_v2 ← 追記 記載したら Esc キー(コマンドモード):wqで保存 # vi /etc/rc.d/rc.sysinit (725行目付近) iキー(入力モード) if [ -x /sbin/quotaon ]; then /sbin/modprobe quota_v2 ← ここに追記 action $"Enabling local filesystem quotas: " /sbin/quotaon -aug fi 記載したら Esc キー(コマンドモード):wqで保存 |
| ソフトリミット、ハードリミット、猶予期間とは |
ユーザとグループへの quota の割当て方法について説明する前に、quota の設定を行なうために重要な3つの用語について説明します。
ソフトリミット(Soft Limit)
ソフトリミットとは、quota でディスクの使用量を制限されたユーザがそのパーティション上で使用可能な最大のディスク容量をいいます。
ハードリミット(Hard Limit)
ハードリミットとは、ディスク使用量の絶対的な制限で、quota でディスクの使用量を制限されたユーザは、ハードリミットを越えることが出来ません。
猶予期間
猶予期間とは、ソフトリミットが強制的に実行されるまでの期間のことで、この期間にのみハードリミットまでディスクを使用することが可能になります。
| ユーザーに容量制限をかける |
# edquota test ← testユーザーに制限をかける場合 例) testユーザーのホームディレクトリ容量ソフトを20480KB(20MB)、ハードを25600KB(25MB)に制限する場合 Disk quotas for user test (uid 503): Filesystem blocks soft hard inodes soft hard /dev/hda7 10240 20480 25600 736 0 0 # repquota -a ← 設定チェック *** Report for user quotas on device /dev/hda7 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ------------------------------------------------------------------ test -- 10240 20480 25600 736 0 0 ← testユーザーの設定 testユーザのクォータ設定をtest2ユーザにコピーする場合 # edquota -p test test2 これでtest2ユーザもブロック数がソフトリミット20MB、ハードリミット25MBに制限されます。 |
| 猶予期間の設定 |
# edquota -t Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hda7 7days 7days Filesystem クォータ設定を行う対象ファイルシステム Block grace period ブロック数に対する猶予期間 Inode grace period inode数に対する猶予期間 デフォルトでは7days(1週間)に設定されています。 時間の単位は seconds(秒)、minutes(分)、hours(時)、days(日) 、weeks(週)、months(月) です。 |
| Quotaのテスト |
1)テストユーザーにソフトリミット、ハードリミットを小さめに設定します。
2)FTPでテストユーザーのホームディレクトリに画像等大き目のファイルをアップロードします。
3)ハードリミットに足した時点でエラーが出てアップロードが不可能になれば、設定は上手くいっています。
FFFTPの場合「552 Transfer aborted. Disk quota exceeded」
Copyright c Vine Linuxで自宅サーバー. 2004 All Rights Reserved.