--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2006/11/28

[RedHat系Linux]ディレクトリの役割[サブディレクトリ編]

前回の記事では、/(ルートディレクトリ)直下のディレクトリに絞った役割を書いた。

今回はその下層に位置する、サブディレクトリの役割に関するメモ書き。
サブディレクトリを持つ/直下ディレクトリは以下の4つ
/etc
/opt
/usr
/var

--------------
/etc
色々な設定ファイルとともに、色々な設定をまとめたサブディレクトリが用意されている。rpmとか、yumのリポジトリとか、まぁ、色々です。

/opt
各パッケージごとにディレクトリを作る。仮にpackageAをインストールしたとすると、
/opt/packageA/binにはpackageAのプログラムを配置。
/opt/packageA/manにはpackageAのマニュアルを配置。
/opt直下のbin,doc,include,info,lib,manは管理者用となっている
なお、パッケージが利用するのは/optのパッケージディレクトリだけではない。作業データやログファイルは/var/opt、設定ファイルは/etc/optといった感じに。

/usr
巨大な/usrディレクトリ。保存されるファイルも多数で、それにともないディレクトリ構造も複雑。以下のような構成になっている。
/usr
+bin/(大部分のユーザーコマンド)
|  +Perl/
|  +Python/
|  +tcl
|  +など
|
+include/ (C言語で使うヘッダファイル)
+lib/ (ライブラリファイル)
+local/ (パッケージシステム管理外)
|  +bin/ (ローカルにインストールしたプログラム)
|  +games/ (ゲーム)
|  +include/ (C言語用ヘッダファイル)
|  +lib/ (ライブラリファイル)
|  +man/ (/usr/local/bin用manページ)
|  +sbin/ (システム用バイナリファイル)
|  +share/ (アーキテクチャに依存しないデータ)
|  +src/ (ソースコード)
|
+sbin/ (システム用バイナリファイル)
+share/ (アーキテクチャに依存しないデータ)
|  +man/ (manページ)
|  +misc/ (様々なデータ)
|
+X11R6/ (X Window System)
+games/ (ゲームと教育用)
+lib<qual>/ (ライブラリの代替形式)
+src/ (ソースコード)
  +linux/ (カーネルのソースコード)

実際ls /usrしてみると違うところもあるけど、基本はこんな感じで。

代表的なところだけざっと説明。
/usr/bin:
シングルユーザーモードでは使わない(使う必要がない)バイナリファイルを保存する場所。パッケージの追加、削除で中身が増減する。この点だけでも/binとの違いが分かる。複数のバイナリファイルで構成されている場合はサブディレクトリを作る。例:Perl Python tclなどなど。

/usr/local:
管理者が自分でアプリケーションをインストールする場所。ここにあるデータはシステム関連ファイルをアップデートしても変更されないようになっている。サブディレクトリの用途は/usr内の同名ディレクトリの用途と同じ。

/usr/share:
アーキテクチャに依存しないデータが保存される。アーキテクチャに依存しないデータとは、i386、Alpha、PowerPCなどのアーキテクチャに関係なく動作するデータのこと。
/usr/share/man以下にはさらにサブディレクトリがあり、
man1/ ユーザープログラム
man2/ システムコール
man3/ Cライブラリ関数
man4/ スペシャル(デバイス)ファイル
man5/ ファイルフォーマット
man6/ ゲーム
man7/ そのほか
man8/ システム管理
のような意味を持つ。なお、番号はmanのセクション番号に対応している。

/var
+cache/ (キャッシュデータ)
|  +fonts/
|  +man/
|  +www/
|  +<package>
|
+lib/ (動的状態情報)
|  +misc/
|  +<editor>/
|  +<pkgtool>/
|  +<package>/
|  +hwclock/
|  +xdm/
|
+local/ (/usr/local用の動的データ)
+lock/ (ロックファイル)
+log/ (ログファイル)
+opt/ (/opt用の動的データ)
+run/ (実行プロセス関連データ)
+spool/ (アプリケーション用スプール)
|  +cron/
|  +lpd/
|  +mqueue/
|  +news/
|  +rwho/
|  +uucp/
|
+tmp/ (システム再起動時にも保存される一時ファイル)
+account/ (プロセス課金記録)
+crash/ (システムクラッシュダンプデータ)
+game/ (ゲーム用動的データ)
+mail/ (ユーザメールボックス)
+yp/ (NISデータベース)

/var/cache:
一時的な保存場所。普通は記録上限を設け、古い順に削除していく。こうすることで最近アクセスしたファイルへのアクセス速度を向上させる。

/var/lock:
ファイルの読み書きなどで排他制御を使う場合に使われる。Linuxはマルチユーザー、マルチタスクであるため、同じファイルに同時にアクセスする場合が生じる。その際に、他の人がアクセスできないようにすることを排他制御という。その時、排他制御中の目印のファイルを、/var/lockに保存する。

/var/log:
各種プログラムの動作記録を記録する。例えば、boot.logを見ることでブートメッセージを閲覧できる。
また、Linuxの動作中の各種メッセージは messages に記録されている。ここを見ることで不正なアクセスがないか、とかを調べられる。
さらに、mail.logと、httpd-access.logも重要。それぞれ、sendmailなどのMTA(Mail Transfer Agent)、ApacheなどのWebサーバの動作ログが記録される。自サイトに対する攻撃だけでなく、他サイトに対する攻撃の踏台にされていないかなど、このファイルで頻繁にチェックする必要がある。尚、これだけをチェックしていれば100%安心というわけではない。

/var/run:
特定のプロセスのプロセス番号を含んだファイルがほとんど。killコマンドを使う際、psコマンドでプロセス番号を調べてkill -HUP プロセス番号とすると、タイプミスしてしまい他のプロセスを消してしまうおそれがある。なので次のようにすると、間違いがない。
kill -HUP 'cat /var/run/プロセス名'
ただし、全てのプログラムがここを利用しているわけではない。

/var/spool:
spool(Simultaneous Peripheral Operation On-Line)は、もともとは動作の遅い周辺機器に対して効率よくデータを送るためのバッファだった。転じて、FIFO(First In First Out)のバッファとして使われている。
/var/spool/lpdはプリンタに送るデータを貯めておく場所なので、本来のspoolの使われかたをする。
/var/spool/mqueue、/var/spool/fax、/var/spool/atというディレクトリは、それぞれうまくおくれなかった電子メールや、FAXデータなどを保存しておいたり、atコマンドで指定されたコマンドを保存しておく場所。
また、sendmailを使ったメールサーバであれば、/var/spool/mailの下に各ユーザ名と同じファイル名のファイルがあり、これがいわゆるメールボックスとなる。ユーザに送られたメールは一旦ここに保存される。その後、mailコマンドで読み出したり、POP3でメーラーに読み込んだりする。
最近使われるようになったqmailというMTAでは、/var/spool/mailを使わず、直接各ユーザのホームディレクトリに転送されるのが一般的。
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。