パソコン実習室
ユーザ管理 - スケルトンとクオータ
≪ previous next ≫

U.4.ユーザにディスク使用量を割り当てる

 quota はユーザのディスク使用量に制限 (割り当て) を設けるが、ディスク使用量が制限値を超えてしまった場合でも、一時的なら許容できる値を設定できるようになっている。

 以下では、alex, betty, charlie, donald, emily の 5 ユーザがアカウント登録済みという仮定で話を進める。


U.4.1.割り当ての具体例

 まず、alex に 100 MB の制限値 (割当量) と、一時的なら許容できる値 110 MB を設定する。
割り当て量の設定は edquota コマンドで行う。
  1. パラメータを alex として edquota コマンドを実行する。
    # edquota alex

  2. vi エディタが起動して alex の管理テーブルが開く。
    Disk quotas for user alex (uid 504)
    Filesystemblockssofthardinodessofthard
    /dev/hda676001800
    ※ 起動されるエディタはデフォルトで vi となっている。
       他のエディタに変更するには、環境変数 EDITOR を追加して指定する。

  3. blocks の soft, hard 欄を下記の値に書き換え (赤字部分) て保存する。
    Disk quotas for user alex (uid 504)
    Filesystemblockssofthardinodessofthard
    /dev/hda6761000001100001800

  4. repquota コマンドで設定内容を確認する。
    # repquota /home
    *** Report for user quotas on device /dev/hda6
    Block grace time: 7days; Inode grace time: 7days
    Block limitsFile limits
    User usedsofthardgraceusedsofthardgrace
    -------------------------------------------------------------------------
    alex--76100000110000 1800
    ※ 実習環境では repquota -a でも同じ結果が表示される。
       -a オプションは quta が設定されているすべてのファイル システム (パーティション) を指定する。

◎ quota のユーザ管理テーブル各項の意味は、左から次の通り。
Filesystemユーザのホーム ディレクトリがあるファイル システム。
つまり /home 用のパーティション が /dev/hda6 であることを示している。

blocksユーザのホーム ディレクトリが占有しているディスク容量 (消費量) 。 KB 単位。
softユーザが使用できるディスク容量の制限値 (ソフト リミット)。 KB 単位。
ただし一時的 (猶予期間内) ならハード リミット (hard 設定値) までの使用が許可される。
hardユーザによるディスク使用量の絶対的な制限値 (ハード リミット)。 KB 単位。
ユーザのディスク使用量は、ハード リミットを超えることができない。

inodesユーザのホーム ディレクトリに登録済みのファイル数。
softユーザが登録できるファイル数の制限値 (ソフト リミット)。
ただし一時的 (猶予期間内) ならハード リミット (hard 設定値) までの使用が許可される。
hardユーザが登録できるファイル数の絶対的な制限値 (ハード リミット)。
ユーザのファイル数は、ハード リミットを超えることができない。

※ soft, hard 欄の 0 (初期値) は、無制限を意味する。

◎ 猶予期間
 qutoa はユーザのディスク使用量がソフト リミットを超えても、一時的なら許可 (ただしハード リミットは超えられない) する。  この一時的な期間を猶予期間 (grace time) といい、デフォルトは 7 日間となっている。 猶予期間は edquota -t で編集可能。
 ソフト リミットを超えたユーザは、猶予期間内にソフト リミット以下まで削減しないと、ディスクへの新たな追加はできなくなる。 (猶予期間内であればハード リミットまで追加可能)
 repquta コマンドで表示される grace time が猶予期間の設定値、grace は各ユーザがソフト リミットを超えた時の残り猶予期間。



U.4.2.quota のテスト

 一人のユーザ (alex) に制限値を設定した所で quota の機能をテストする。  ユーザ (alex) のホーム ディレクトリで制限値を超えるテスト ファイルを作成し、警告やエラーメッセージが出ることを確認する。
※ テストファイルは dd コマンドで直接作成する。 ここでは作成するファイル名を bigfile としているが任意で構わない。
   ファイルサイズの指定は、ブロック サイズ (bs) とコピー回数 (count) で行うが、bs=1M とした時のブロックサイズは
   1,048,576 (1,024 * 1,024) バイトであることに注意が必要。
  1. quota が off の状態なら on にする。
    # quotaon -uv /home
    /dev/hda6 [/home]: user quotas turned on
    ※ 既に quota が on であった場合は次のメッセーが表示されるので、そのまま次へ進む。
       quotaon: using /home/aquota.user on /dev/hda6 [/home]: デバイスもしくはリソースがビジー状態です

  2. ログイン アカウントを alex に変更し、alex の public_html に移動する。
    # su alex
    $ cd
    $ cd public_html

  3. 制限値以下 (例えば 30 MB) のテスト ファイルが正常に作成できることを確認する。
    $ dd if=/dev/zero of=bigfile bs=1M count=30
    読み込んだブロック数は 30+0
    書き込んだブロック数は 30+0

  4. 制限値 (ソフト リミット) を僅かに超えるテスト ファイル (例えば 101 MB) の場合、警告は表示されるが正常に作成できることを確認する。
    $ dd if=/dev/zero of=bigfile bs=1M count=101
    ide0(3,6): warning, user block quota exceeded.
    読み込んだブロック数は 101+0
    書き込んだブロック数は 101+0

  5. ハード リミットを超えるテスト ファイル (例えば 120 MB) の場合は、警告と共にエラーも表示され、ハード リミットまでのファイル サイズに調整されることを確認する。
    $ dd if=/dev/zero of=bigfile bs=1M count=101
    ide0(3,6): warning, user block quota exceeded.
    ide0(3,6): write failed, user block limit reached.
    dd: writing 'bigfile': ディスク使用量制限を超過しました
    読み込んだブロック数は 108+0
    書き込んだブロック数は 107+0

  6. テスト ファイルを削除する。
    $ rm bigfile

  7. ログイン アカウントを root に戻す (alex をログ アウトする)。
    $ exit
    exit
    #
※ 同様のテストを、リモート ユーザとして ftp で行った場合は、次のような結果となる。
ハード リミット以下正常にアップロードされる。
ハード リミット超過下記表示が出て、アップロード エラーになる。
・・・・ がアップロードできませんでした。
451 Failure writing to local file.


U.4.3.quota のコピー

 quota 機能の正常性が確認できたら、alex と同様の設定を他のユーザにも適用する。
edquota コマンドの -p オプションを使うと alex の設定内容を他のユーザにもコピーできる。
  1. alex の設定内容 (割り当て量制限値) を他のユーザにもコピーする。
    # edquota -p alex betty charlie donald emily

  2. repquota コマンドで設定 (コピー) 状況を確認する。
    # repquota /home
    *** Report for user quotas on device /dev/hda6
    Block grace time: 7days; Inode grace time: 7days
    Block limitsFile limits
    User usedsofthardgraceusedsofthardgrace
    -------------------------------------------------------------------------
    alex--76100000110000 1800
    betty--76100000110000 1800
    charlie--76100000110000 1800
    donald--76100000110000 1800
    emily--76100000110000 1800
    ※ 実習環境では repquota -a でも同じ結果が表示される。
       -a オプションは quta が設定されているすべてのファイル システム (パーティション) を指定する。

▼ quota のコピーは、ユーザ追加の必須項目。
  新規追加したユーザには quota による制限は適用されない。
  edquota -p コマンドでコピー、または新たに設定する必要あり。


≪ previous [[ ユーザ管理 ]] next ≫