いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.086 / 読者数:960名

こんばんは、うすだです。

最近、お仕事の打合せに出ていて、ふと思いました。

わたしなんかは、これのドライバをどうやって書こうかとか、 納期に間に合うかなとか、目の前の壁のことしか考えていません。
しかし、プロジェクトの舵とりをしているかたなどは、 作った製品をどう展開していくかとか、 これをベースにして次にどんな新しいモノが作れるのかとか、 グローバルな視野で見られているんですよね。

まあ、ヒエラルキーの上位層のひとが大きな視野で見て、 下位層のひとが細部を検討してモノを作っていく、という構図は、 ものすごく当たり前のこと…といいますか、理にかなったことだとは思います。

でも、下位層のひとが目の前のことしか考えなければ、 そのひとはずっと下にい続けるしかないわけですよね。下にいるときから、 上から見ることを心がけないと、上に行けるはずもないよなということに、 いまさらですが、気づいたという次第です。

36歳の後半をだらだらと過ごしていて、そんな焦りのようなものを感じておりました。 いや、上に行きたいのか? という疑問もあるわけですが…。

言いたいことがわからないままに、今週も、はりきってまいりますよ!

今週のお題 - ファイルシステムの使用量を制限する / スーパー

先週は、Quota を使って、ファイルシステムの使用量をユーザ単位で制限してみました。

Vol.085 - ファイルシステムの使用量を制限する
http://www.usupi.org/sysad/085.html

しかしながら、制限する設定までたどり着いたところで、終わってしまいました。 ですので、今週は、その続きです。
具体的には、以下を予定しております。

  • Quota の今の状態を知る。
    quotaon や repquota コマンドを使います。
  • あるユーザの制限内容を、別のユーザに適用させる。
    これを使えば、複数のユーザの設定を一気に行えます。
  • grace period を設定する。
    soft limit を越えたときの猶予期間を設定します。

まずは、今の状態を確認してみましょう。
ファイルシステム単位の状態を知るには、quotaon コマンドを使います。
-p オプションをつけて実行すると、 指定したファイルシステムの Quota が on なのか off なのかを、出力してくれます。

  # quotaon -p /home
  group quota on /home (/dev/hda3) is off
  user quota on /home (/dev/hda3) is on

 

個々のユーザの状態を知るには、quota コマンドを実行します。
引数なしで実行すると、自分の状態を出力してくれます。
引数にユーザを指定すると、そのユーザの状態を出力します。
以下の例では、usu さんの状態を確認しています。

  # quota usu
  Disk quotas for user usu (uid 12345): 
  Filesystem blocks  quota limit  grace  files  quota  limit  grace
  /dev/hda3    2212*  2048  4096  6days     10      0      0        

現在の使用量が 2212 ブロック、 soft limit と hard limit がそれぞれ 2048 ブロックと 4096 ブロックだ、 ということがわかります。
soft limit を超過していますが、その猶予期間があと 6日であることもわかります。
そして、現在のファイル数は 10 で、 limit の値がいずれも 0 で制限のないことがわかります。

 

とあるファイルシステムの、すべてのユーザの状態を知るには、 repquota コマンドを実行します。
引数にファイルシステムを指定すると、 そのファイルシステムの各ユーザの状態を出力してくれます。

  # repquota /home
  *** Report for user quotas on device /dev/hda3
  Block grace time: 7days; Inode grace time: 7days
                          Block limits               File limits
  User           used   soft   hard  grace    used soft hard  grace
  -----------------------------------------------------------------
  root     -- 2316964      0      0          82223    0    0       
  daemon   --      20      0      0              3    0    0       
  lp       --       8      0      0              1    0    0       
  ...中略...
  usu      +-    2212   2048   4096  6days      10    0    0       

では次に、あるユーザの制限の設定を、別のユーザに適用させてみたいと思います。

Quota の設定を行うには edquota コマンドを用いますが、 -p オプションを指定すると、あるユーザの設定を別のユーザに適用できます。
たとえば、usu さんの設定を、user01 さんに適用したい場合は、 以下のように実行します。

  # edquota -p usu user01

quota コマンドで確認すると、適用されていることがわかります。

  # quota user01
  Disk quotas for user user01 (uid 2001): 
  Filesystem blocks  quota limit  grace  files  quota  limit  grace
  /dev/hda3      16   2048  4096            10      0      0        

ひとりではなく、たくさんのひとに対して同じ設定を適用したい場合は、 ループさせると楽ちんです。
たとえば、user01 〜 user99 に対して一気に適用するには、sh 系では、 以下のようにします。

  # for cnt in `seq 1 99`; do
  > edquota -p usu `printf "user%02d" $cnt`
  > done

csh 系の場合は、以下のようにしてください。

  # foreach cnt (`seq 1 99`)
  foreach? edquota -p usu `printf "user%02d" $cnt`
  foreach? end

それでは最後に、soft limit の grace period を変更してみましょう。

デフォルトでは7日間ですが、これを変更したい場合は、 edquota コマンドを -t オプションつきで実行します。

  # 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/hda3                  7days                  7days

上記ですと、容量とファイル数の双方とも、7日間です。
変更したい値に書き換えて、保存して終了すると、それが反映されます。
単位は、上記にあるように、days, hours, minutes や seconds です。

ただし、すでに soft limit を超過しているひとの場合、 一旦 soft limit 内に収まらないと、新しい設定が適用されません。


以上、Quota の設定方法の続きを、ご紹介しました。

Quota は、ユーザのみなさまに対して不便を強いるものですが、 ユーザ数が増加するほど、必要になってくるもののように思います。
できる限りみなさまの理解が得られるようにして、導入していくべきだと思います。 コンセンサスが得られるよう、がんばってくださいまし。

宿題の答え

先週の宿題は、

  Quota がどのようにして実現されているのか、想像してみましょう。

でした。

みなさんが想像された内容は胸の内にしまっていただくとして、 実際どうなっているかを、簡単に追っかけてみました。

 

まず、quotaon コマンドで Quota を有効にすることから始まりますが、 quotactl システムコールを用いてカーネルに指示しています。

カーネルは、quotactl 経由で Quota の有効を指示されると、 指定されたファイル(aquota.user)を読み込んで、メモリに記憶します。
ですので、quotaon する前に、quotacheck を実行して aquota.user の値を最新にする必要があります。(rc.sysinit でそうなっています。)

それから、ファイルが作られたりすると、カーネルはメモリ上の値を更新します。 aquota.user へは通常更新しませんので、quota コマンドで現状を知る際には、 quotactl システムコールでカーネルに伺います。
ただし、repquota の場合は、カーネルに、 aquota.user を最新の状態にしてもらってから、aquota.user を読んでいます。
(quotactl システムコールを連発すると遅いからだと思われます。)

そして、quotaoff コマンドで無効にする場合も、やはり quotactl で指示します。 その際カーネルは、現在の状態を aquota.user に書き出します。

 

…という具合でした。わかりにくくてすみません。
今回、カーネルと quota 関連のコマンドのソースを追っかけましたが、 思った以上に骨が折れました。きちんと解読しきれずに、 aquota.user のタイムスタンプを見て推測した箇所もあるということを、 ここに白状しておきたいと思います。(嗚呼、精進しなければ…。)

今週の宿題

今週の宿題は、

  Logwatch を使って、Quota の状態をメールで通知してみましょう。

です。

Logwatch がありますと、毎日メールをくださいますので、Quota の状態の通知も、 それに便乗してしまおうという魂胆です。
Quota のサービス・フィルタを追加して、毎日監視してみましょう。

Logwatch についてご存知ないかたは、以下を参考にしてください。

Vol.074 - Logwatch をカスタマイズする
http://www.usupi.org/sysad/074.html
Vol.075 - Logwatch にサ−ビス・フィルタを追加する
http://www.usupi.org/sysad/075.html

あとがき

セキュリティ対策っていうと、どうしても、 技術的な面ばかりを検討してしまいがちです。しかし、 それだけではダメだ! ということを知るためのいい本に出会うことができましたので、 ご紹介したいと思います。

欺術 - 史上最強のハッカーが明かす禁断の技法
http://www.amazon.co.jp/exec/obidos/ASIN/479732158X/usupiorg06-22

あの伝説のハッカー…というかクラッカーである、ケビン・ミトニック氏の著書です。
前半は、ソーシャルエンジニアリングの手口とその対策を、大量の事例をもとに、 わかりやすく教えてくれます。
後半は、ソーシャルエンジニアリングにだまされないようにするための、 意識改革の方法と、セキュリティポリシーの例が、これまた大量に、 記載されています。(正直に言いますと、ここはやや退屈です。)

これを読むまでは、 ソーシャルエンジニアリングに引っかかるひとなんているんだろうか、 と思っていましたが、それは巨大な間違いでした。
他人に教えてもまったく問題ないと思われる情報をきっかけにして、 徐々に核心へと迫っていく手口は、まさに驚愕!!! でした。
セキュリティポリシーの確立を今すぐやらないと、と思わせられます。

ちなみに、この本は3年前に出ていまして、今は新しい本が出ています。
とはいえ、 ソーシャルエンジニアリングに対する危機感を得るには十分な内容だと思いました。 (わたしが無知なだけかもしれませんがー。)
興味のあるかたは、機会があれば、目を通してみてください。

 

さてさて、いつのまにやらもう年末ですね。
今年は、真面目に掃除をして、年内に年賀状を書き上げるという、 まさにミッションインポッシブルな計画を検討中です。

というわけで、申し訳ありませんが、今年の発行は、 これを最後にさせていただきたいと思います。
最初から最後まで、つたない内容と文章でしたが、おつき合いいただき、 誠にありがとうございました。
来年も、懲りずに、変なネタを探して発行し続ける所存ですので、 引続き、よろしくお願いいたします。

 

今年も、ここまで読んでいただき、ありがとうございました。
それでは、また来年に、お会いしましょう!
よいお年を!!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−栗の絵は、朝一か昼休みに観るといいですよ。たぶん。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本