CentOSの引き出しに何があるか大まかに把握しよう
やみくもにパッケージを追加すれば「動作に必要なファイルがどこだっけ?設定ファイルは?ログはどこ?」となりかねません。
といっても、大まかな把握だけなら別に難しいこともなく、タンスの引き出しに、どんな服が入っているか把握するようなものです。
目次
/〈ルート〉
/bin
/boot
/dev
/etc
/home
/lib
/lost+found
/media
/misc
/mnt
/opt
/proc
/root
/sbin
/selinux
/srv
/sys
/tmp
/usr
●/usr/bin
●/usr/etc
●/usr/games
●/usr/include
●/usr/lib
●/usr/libexec
●/usr/local
●/usr/sbin
●/usr/share
●/usr/src
●/usr/tmp
/var
●/var/account
●/var/cache
●/var/crash
●/var/db
●/var/empty
●/var/games
●/var/lib
●/var/local
●/var/lock
●/var/log
●/var/mail
●/var/named
●/var/nis
●/var/opt
●/var/preserve
●/var/pwcheck
●/var/run
●/var/spool
●/var/tmp
●/var/www
●/var/yp
Linuxの基本的なディレクトリ構成
冒頭でも触れましたがCentOSの基本的なディレクトリ構造について解説しています。同じLinuxでもディストリビューションによって違いがありますが、基本的に標準規格FHSによって定められた「必須」の項目は共通しています。
各ディレクトリの読み方をカッコ内に記しました。また項目の後にFHSによって「必須」とされている場合は「必須」、それ以外の項目は「オプション」と記しました。
/〈ルート〉
必須
ルートディレクトリ。全ての始まり。
/bin(ビン)
必須
cpやchmodなどのシステムを管理する上で基本コマンドが入っています。
基本コマンド限定で管理するのが普通で、ソフトのインストールに付随するコマンドなどはここにインストールしない。
cp、chmodなど
/boot(ブート)
必須
ブートに必要なファイル。ブートログやカーネルイメージ(Linuxカーネルを格納して圧縮したファイル)が保存されている。
vmlinuzなど
/dev(デブ)
必須
デバイスファイルが配置されている。デバイス(装置〈ハードウエア〉)をファイルとして扱うUNIXの設計思想からきています。
cpu、disk、ramなど。
/etc(エトセ)
必須
ほとんどの設定ファイルが配置されます。カーネルだけでなく、追加された各ソフトの設定ファイル等が配置されているため、ファイル数が膨大で内容を把握するには骨が折れます。
そのままetcディレクトリに保存するタイプと、サブディレクトリを作成してまとめるタイプがあります。
my.cnf、php.ini、httpd.cnfなど
/home(ホーム)
オプション
一般ユーザーのホームディレクトリ。通常ユーザーを追加するごとにユーザー名のディレクトリを追加します。
/lib(リブ)
必須
/binや/sbinのコマンドを実行するのに必要なファイルが配置されています。基本的にユーザーが変更を加えることはありません。
64bit用の共用ファイルは別途「lib64」というディレクトリにあります。32bitと間違えないように注意。
libc、libsslなど
/lost+found(ロストアンドファウンドまたはロストファウンド)
オプション
システムのバックアップや復元用のファイルが格納される。意図しない再起動やシャットダウン時に使われる。通常ユーザーが操作することは無い。
/media(メディア)
必須
リムーバブルメディアのマウントポイント。(floppy、CD、DVDなど)
/misc(ミスク)
オプション
リムーバブルメディアのマウントポイント(その他ざまざまなデータ用)。自動でメディアをマウントするデーモンautofsで利用する。
/mnt(マウント)
必須
一時的なマウントポイント。mediaとの違いは、一時的なファイルシステム(fstabなど)のマウントに使う点。
/opt(オプト)
必須
rpmなどパッケージ管理システムのインストール先。複数のユーザーで利用する場合追加したものをここに保存しておけば、変更点を把握しやすい。
/proc(プロック)
必須
プロセスのIDの付いたディレクトリが配置されています。プロセス独自の情報を格納することからプロセスディレクトリと呼ばれる。各種プロセスのステータスを確認する際に利用される。
psコマンド、/proc/cpuinfo、/proc/netなど
/root(ルート)
オプション
rootユーザーのホームディレクトリ。homeがセキュリティ上の脅威にさらされてもこちらは大丈夫。という保険のディレクトリです。
/sbin(エスビン)
必須
再起動やファイルシステムの操作などシステム管理者用のコマンドが配置されています。/bin同様、新しいコマンドの追加や変更は推奨されません。
shutdown、rebootなど
/selinux(エスイーリナックス)
オプション
セキュリティーを向上させるために利用する、Security-Enhanced Linux。rootへの権限が集中を分散することでセキュリティの向上を図る。ものらしい。CentOSではデフォルトで作成される。
ディストリビューションのScientific Linux(サイエンティフィック・リナックス)とは全く関係ないので注意。
/srv(エスアールブイ)
オプション
FTP、WWWなどで利用するユーザー用のスペース。/homeとも違う、FTP専用、WWW専用のユーザー用ディレクトリ。
管理者が一人の場合は利用しない。
/sys(シス)
オプション
システム関連と思いきや、動作しているプロセスやドライバを/procで管理すると膨大になるため、/sysにドライバ関連のプロセスをまとめている。
しかし完全に分離されているわけでなく、現在では渾然としている。
主にdeviceやmoduleに各種情報が保存されている。
/tmp(テンプ)
必須
テンポラリデータの保存場所。メモリ上の一時ファイルを保存します。ダウンロードフォルダとして利用することもあります。再起動時に消去されます。また通常はcronで定期的に消去されます。
/usr(ユーザー)
必須
各ユーザーが共通して利用するプログラム・ライブラリのデータ。ソースからコンパイルしたソフトなどはこちらにインストールされます。通常パッケージの追加するこのディレクトリにインストールされることが多い。
etcに保存されている設定ファイルのシンボルリンクもこちらに貼られることが多い。
ちなみに重要な項目が多いため、/usrのサブディレクトリについても記載します。発音は「ユーザーすらビン」といった具合に発音します。
/usr/bin
必須
usr版のコマンドが保存されている。一般ユーザーの利用するコマンド。別名ユーザーコマンドの保存場所。プログラムのインストールによって追加する場合はこのディレクトリが適している。
openssl、php、perlなど
/usr/etc
オプション
あまり利用されることはありません。通常/usrに追加されるライブラリの設定ファイルは/etcが利用されます。
/usr/games
必須
なぜか必須のゲーム用ディレクトリです。
/usr/include
必須
C言語用ヘッダーファイルの保存場所。
/usr/lib
必須
usr版のライブラリ保存場所。/libと同じように64bit用に/lib64が用意されている。
/usr/libexec
オプション
コマンドから内部的に呼ばれる補助コマンドの保存場所。
dovecotやPostfix用のコマンドなど。
/usr/local
必須
システム管理者用のローカルファイル。管理者のみが利用するライブラリなどの追加に利用する。それぞれlibやbinといった必須のディレクトリが用意されている。
/usr/sbin
必須
usr版管理者用コマンド。
/usr/share
必須
アーキテクチャ(OSやソフト)に依存しないデータを配置。
具体的にはマニュアルのmanや各ソフトで利用するデータベース等が保存されている。
/usr/src
必須
ソースコードの保存場所。
/usr/tmp
オプション
usr版テンポラリファイルの保存場所。通常シンボルリンクが/tmpディレクトリに貼られている。
/var(バーorバア)
必須
ログやキャッシュなど、可変的システムデータ(動的ファイル)。一時的なデータとしては/tmpと同じですが、こちらは再起動しても消去されずに残ります。
/var/account
オプション
アカウントに関する動的ファイルを扱う。ユーザーごとにコマンドの履歴をとる/var/account/pacctなどに利用される。
/var/cache
必須
一時的な記憶場所。ソフトで指定した一定の容量を超えると古いものから削除される。
/var/crash
オプション
システムクラッシュ時のダンプデータ(クラッシュ時のメモリ上のデータ)保存場所。クラッシュの原因を究明するために利用されます。
/var/db
オプション
各ソフトで利用するデータベース情報。記述子についての情報を集めるnscdなどで利用する。
/var/empty
オプション
SSHで利用される。パーミッションの変更をするとログインできなくなるので注意。
/var/games
オプション
ゲーム用の動的ファイル保存場所。セーブデータなど。
/var/lib
必須
アプリケーションの実行によって生成されるステータスに関する情報。動的に生成されるもの。
/var/local
必須
/usr/local用のログファイル保存場所。
/var/lock
必須
排他制御を行う場合に利用する。他のユーザーが使用中か、変更点を保存しているかなどの情報。
/var/log
必須
システム管理者御用達ログファイルの保存場所。システム、メール、インターネットのアクセスログなど、あらゆるログが保存される。
安定したシステムでは、このディレクトリに関連したデータとばかり格闘することになりますw
/var/mail
オプション
メール関連の動的ファイルを管理する。通常/var/spool/mailへのシンボルリンク。
/var/named
オプション
BIND DNSサーバ用のディレクトリ。名前解決に関連するファイルが保存されている。chroot化していれば設定ファイルも。
/var/nis
オプション
NIS+等で利用する。
/var/opt
必須
/opt用の動的ファイル保存場所。
/var/preserve
オプション
エディタがクラッシュした時に利用する。クラッシュ時にメールでクラッシュ前のデータを送信してくれる。
/var/pwcheck
オプション
ユーザー認証のSASLライブラリでpwcheckを使う際に利用する。通常はsaslauthdを利用するため、あまり使われることはない。
/var/run
必須
特定プロセスのプロセス番号を含んだファイル。再起動時にはクリアされる。
/var/spool
必須
スプールファイル(実行ファイル・データの一時的な保存)を保存する。処理に時間のかかるものにプロセスを取られ続けるとリソースの無駄なので処理したデータを一度保存する。印刷時の印刷データや、メールの送信データなど。
/var/tmp
必須
システム関連の一時ファイルを保存する。/tmpはメモリ上のデータを保存するもので、こちらは再起動時のデータも扱うため、データは保持されます。cronによって削除の期間は設定されています。
/var/www
オプション
Apacheのデフォルトデータ保存場所。インターネット関連のディレクトリはここに収めるのが普通。かつては/home/httpdディレクトリにあった。
/var/yp
オプション
NISの動的ファイル保存場所。
他にも/varには追加するパッケージによってディレクトリが作成されます。
FTPやWebmin、racoonなど。
ピンバック: Linuxの基本的なディレクトリ構成が知りたかった | DIALOGIQUE