*講義内容

サーバ導入に関しての考察とレンタルサーバホスティングとの比較

サーバの選定と回線・ISP選択とドメインの準備

OSのインストール
(RedHat Linux8.0)

How to PC-Unix(Linux)
超簡素UNIX入門講座

基本システム構築編

第一教程
ネットワークの設定

第二教程
DNSサーバの設定

第三教程
メールサーバの設定

第四教程
Webサーバの設定

第五教程
FTPサーバの設定

第六教程
時刻の同期(NTPD)設定

各種用途に答える
システム拡張編

第七教程
DHCPとIPマスカレード設定

第八教程
プロキシサーバ設定

第九教程
バーチャルホスティング
・IPベースとネームベース
・サブドメイン


第十教程
ハードディスクの割当容量を制限する


基本運用管理編

第一教程
ユーザとグループの管理
(登録と削除)


第二教程
システムのアップデート


第三教程
管理コマンドとログ解析


以後順次公開予定

で構築する

ユーザー・グループのHDD容量を制限する/ディスククオータの設定

《教程の目的と作業のポイント》
会社や学校など、貴方の管理するサーバで多くのユーザーを抱えている場合、通常/home以下に専用ディレクトリを所有することになります(そのディレクトリは一般的にはユーザー個人のWEBサイト公開の為のデータ保管場所などです)。またユーザーの所属する団体であるグループを作成しそのグループにも専用のディレクトリを提供しているかもしれません。OSインストールのハードディスクパーティーションの設定のところで、/homeディレクトリの設定容量の目安は1名10MB〜100MB×ユーザー数といった形で説明いたしました、しかし、これはあくまで管理者である貴方の設定した数値をユーザーがまじめに守ったと想定した数値です。もしも誰かが独占的に/homeディレクトリを消費し尽くしてしまったら、他のユーザーの利用できる容量の制限につながり、さらにサーバシステム全体を危うくする恐れすらあるのです。(このような状態に陥ったサーバは、時としてシステムが非常に不安定になる場合があります。)

そこで、言葉だけではなく機械的(強制的)に制限を設けることにします。
ファイルサーバでは必須の設定ですが、インターネットサーバでも多くのユーザーを抱える場合は、事前に設定を済ませておくほうが安心です。割り当てられたディレクトリスペースを自宅からFTPクライアントを使って接続し、膨大な量の動画データをちゃっかりと転送し数十GBも消費していたケースなどがありました。面倒なのは実際の運用が開始され、既にユーザーが貴方の想定している規制値以上のデータを自分のディレクトリの溜め込んでいる場合、設定値以下にデータを減らすよう言って、現実に設定値以下に減らしてからでないとこのディスククオータ設定は出来ないのです。

転ばぬ先の杖、事前にしっかりと準備しておきましょう。
ここでは、個人ユーザーと団体の両方に制限を設けることにします。


ディスククオータ=Disk Quota(クオータとは割当量の意)を実現する為には、先に/etc/fstabにディスクの使用制限を加えるべく宣言しておかなければなりません。
サーバを起動しますと最初にfstabの中に書かれている各ファイルシステム(/usrや/homeなどなど)を順番に読み込みシステムに組み込んで利用可能にします。このことをマウントと言います、反対にシステムから切り離すことをアマウントと言います。そこでファイルシステムが組み込まれる前に当該ファイルシステムでは特別な制限を設けている旨宣言しなければなりません。ピコエディタで/etc/fstabを開いて、ディスククオータを使用する旨を書き加えます。
#
pico /etc/fstab  (例は筆者の環境です
fstab (例は筆者の環境です
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
LABEL=/home /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults 1 2
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/usr/local /usr/local ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
ご覧のとおりで、上から順に/、/boot、/home・・・とファイルシステムが組み込まれ最後の方でCDROMやフロッピーなども登録されているのがお分かりいただけると思います。(UNIXにはAドライブ、Cドライブ・・・といったものが存在しません、全てが/(=ルート)以下に組み込まれて(マウント)利用されます、CDROMやフロッピなども利用の度にマウントされ、使用終了時にアマウントされてシステムから切り離されます)

今回は、一般ユーザーのディレクトリを制限しますので、制限対象/homeディレクトリに対して宣言を行います。以下の様に、ユーザーとグループに対して制限を加える宣言を書き込みます。必要に応じ、ユーザー(usrquota)のみグループ(grpquota)のみでもかまいません。
LABEL=/home /home ext3 defaults 1 2
                      ↓
LABEL=/home /home ext3
 usrquota,grpquota  1 2
例が小さくて解り難いのですが、以下のようにdefaultsを削除し、そのままそのスペースにusrquota,grpquotaと書き込みます。

書き込んだ宣言を有効にする為には、/homeディレクトリを再マウントしますが、その前に#mountコマンドでマウント状態を確認しておきましょう。その方が、宣言が有効になってからのマウント状態と比較した場合に、よく解るでしょう。
#
mount

#
mount -o remount /home 又は /dev/hdb3(←各自の場合で違います)
(-o=オプションの略で/homeディレクトリを再マウント(remount)しますの意)

#
mount 
再度/home ディレクトリを確認し、(rw,usrquota,grpquota)と書かれてれば宣言は有効になっています。

続けて、制限を設ける対象のユーザーやグループとその規制内容を記録する為のデータベース用の空のファイルを、規制を設けるディレクトリに馴染みの#touchコマンドで作成します、この場合は/homeでしたね。例えばメール私書箱などの容量規制をしたい場合などは/varに対してディスククオータを実施することになります。所有権限はユーザーやグループに後から勝手に書き直されてはたまりませんから、当然600でルートのみが読み書きできるように#chmod 600 ファイル名 とします。このデータベースファイルの準備ができたところで、#quotacheckコマンドでデータベースを作成します。この作業は、初めてファイルシステムのデータベースを作成するので暫く時間がかかる場合があります。
#quotacheckコマンドの直ぐあとの-ugはユーザーとグループのこと。ユーザーのみの場合は-u、グループのみは当然に-gです、vはチェックした結果を表示する為のオプション、/homeはデータベース更新対象のディレクトリを指します。/homeだけでなく/varなども一緒にディスク規制した場合には-aオプションを加えて纏めてデータベースの作成や更新をすることもできます。
参考)#quotacheck -ugv -a
(この場合は-a=ALLで全てのファイルシステムを指しますから個別ディレクトリの指定は不要です)
#cd /home
#
touch aquota.user
#
touch aquota.group
#
chmod 600 aquota.user
#
chmod 600 aquota.group
#
quotacheck -ug /home
最初にデータベースを作成する時には、更新対象のデータが存在しない為に注意がでます。

いよいよピコエディタを使って今作成したデータベースを編集します、初期設定では編集用エディタにviエディタが使われるようになっていますが、#exportコマンドで使い慣れたpicoに変えてから作業に取り掛かります。
※うっかりviで開いてしまった人は、落ち着いて[:]+[q]をタイプしてからエンターキーを押して下さい。もとの状態に戻りますので使用エディタを下記コマンドで切り替えて下さい。

#
export EDITOR=pico
#
edquota ユーザーアカウント
#
edquota グループアカウント
例としてadminのデータベースを作成します。
さて、制限規制の詳細内容をここでご説明いたします。
上図の赤星、ブロックとiノードの2種類に先ずは大別できます、もちろん同時に両者の制限も可能です。更にその内訳でハードとソフトに分けられ、これまた同時に適用可能です。最後に、制限規制をオーバーしてからの時間的猶予を#edquota -tコマンドで施しますが後述します。

ディスククオータの制限種類と内容
制限の種類 制限の内容
ブロッククオータ ほん教程の目的とするディスク使用制限
ノードクオータ ファイル数・ディレクトリ数の作成制限
ソフト制限 制限規制値に達すると警報を発します!!
警報のみですのでユーザーはまだ自分のディレクトリにファイルを溜め込み続けられますが、後述の時間猶予期限切れになると不可能になります。
ハード制限 制限規制に達すると、有無を言わさず自分のディレクトリにファイルを溜め込むことができなくなります。(ノード規制の場合は新規ディレクトリやファイル作成ができなくなる)
猶予期間 初期設定で猶予期間は7日間です。自由に変更が可能です。

早速、アドミン(admin)に対して実施してみましょう。
例では、ブロック制限でソフト・ハードともに100MBの制限規制を設けました。
10MBなら10240になりますので、それぞれのケースで設定して下さい。
因みにブロック・iノードのそれぞれ下の数字は既に使われているブロック使用量と作成済のノード数です。
注意)数値を書き込むと後ろの数字が後方にずれますが上図の様になるべく綺麗にバックスペースキーを使って元通りに直しておいて下さい。うっかり改行されるとディスククオータを稼動させた時にエラーになる場合があります。

時間的猶予も確認しておきます、必要なら編集して下さい。
#
edquota -t

ユーザー同様にグループも必要ならデータベースを編集します。(
ここでは省きます)。

さて、各データベースを編集した場合は、必ず#quotacheckコマンドでデータベースを更新して編集内容を反映させてください。

尚、このクオータチェックコマンドは、ディスククオータが停止している場合のみに有効ですので、既に起動している場合は#quotaoffコマンドで停止してから実行して下さい。
サーバを再起動させると自動的にディスククオータは起動するようになっていますので、もしここまでで再起動させてしまった方は、以下のコマンドで一度ディスククオータを停止させます。

#
quotaoff -ug -a

#quotacheck -ugv -a
そして、ディスククオータを有効にします。
#
quotaon -ugv -a
(オプション-ugvはユーザー、グループ、結果報告、-aはALL全ファイルシステムのことです)

本当にアドミンに対してディスククオータが有効になっているのか?確認します。
#
repquota -uga
それぞれ猶予期限は7日間でブロックに対してソフト・ハード100MB使用制限がかけられています。
(上図は一部表示のみで実際には全ユーザーとグループの内容が一覧で表示されます)
個別に確認したい場合は、
#
quota -u  ユーザーアカウント
#
quota -g  グループアカウント

この#
quotaコマンドは個人レベルでも使用できます。

ところで、数人程度の事業所などでは一人ずつの個別入力でなんとかなりますが、これが学校や多くの会員を抱える団体では、大変なことになってしまいます。

そこで、最初に誰かのデータベースを作成しておき、後は全てそれをコピーすることにより大量に設定することが出来ます。個人のユーザーも団体も同じです。
#
edquota -p コピー元ユーザアカウント ユーザーアカウント
#
edquota -g -p コピー元グループアカウント グループアカウント

《ディスククオータの設定時の注意点》
#edquota でデータベースを編集した場合、
必ず、更新前に
#quotaoff -ug -a で、停止させ
#quotacheck -ugv -a で、更新を有効にします。
最後は必ず、編集内容確認
#repquota -uga 又は個別に  #quota -u  ユーザーアカウント
最後にディスククオータを再起動させます。
#quotaon -ugv -a

以上で、ディスククオータの設定は完了しました。




「UNIX」はX/Open Co.,Ltd.社の独占ライセンスで米国及びその他の国での登録商標です。
「Linux」は、Linus Torvalds 氏の米国及びその他の国における登録商標です。
「Red Hat」、Red Hat「Shadow Man」ロゴおよび Red Hat をベースとしたすべての商標とロゴは、米国およびその他の国における Red Hat, Inc. 社の商標または登録商標です。

その他のプログラム名、システム名、CPU名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。

ここで提供する情報に関して、閲覧者の環境で同様の結果が得られることを保証するものではありません。
また掲載している内容については、豪Corporationが一切保証するものではありません。

Copyright (C) Go Corporation. All Rights Reserved.
ご意見・ご感想・お問合せ