FHS/3. root ファイルシステム
の編集
http://pocketstudio.jp/linux/?FHS%2F3.%20root%20%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
Apache/Tips
Apache/Tips/Basic 認証
Apache/Tips/Digest 認証
Apache/Tips/Digest+認証
Apache/Tips/mod_auth_digest.soのセットアップ・インストール
BBS
BBS/archive1
BitTorrent
BracketName
CentOS
CentOS 3 パッケージ更新・エラータ・セキュリティ情報
CentOS 4 パッケージ更新・エラータ・セキュリティ情報
CentOS が配布されている isos ディレクトリ群にあるファイルは何ですか?
CentOS に寄付しようぜ!
CentOS のロゴや画像ファイルを使用しても構いませんか?
CentOS 用 セットアップ CD ファイルのダウンロードと CD の作成方法を教えてください。
CentOS/FAQ
CentOS/FAQ/CentOS 2・CentOS 3・CentOS 4 はどのように比較できますか?
CentOS/FAQ/CentOS 3.3 での MegaRaid STA 150-2 について
CentOS/FAQ/CentOS 4 とは何ですか?
CentOS/FAQ/CentOS 4 の開発者は誰でしょう。どのように連絡を取れますか?
CentOS/FAQ/CentOS 4.x にアップグレードする代替案はありますか?
CentOS/FAQ/CentOS Extras とは何ですか?
CentOS/FAQ/CentOS ではどうして GPG キーが yum にセットされていないのですか?
CentOS/FAQ/CentOS ではどうして GPG キーが yum にセットされていないのですか?(G)
CentOS/FAQ/CentOS と Red Hat(R)社や RHEL とはどのような関係ですか?
CentOS/FAQ/CentOS に関する全てのレポジトリ(ディレクトリ)に関する説明はありますか?
CentOS/FAQ/CentOS の 3.1・3.2・3.3 との相違点は何でしょう? それらは全て RedHat...
CentOS/FAQ/CentOS のバージョンやリリースはどのような仕組みですか。また、上位ベンダーの提供するものと...
CentOS/FAQ/CentOS は一次配布されているソース RPM ファイルを変更していますか?
CentOS/FAQ/CentOS を MySQL (あるいは PostgreSQL) と一緒にインストールしました。ですが...
CentOS/FAQ/CentOS リリースをダウンロードする為に Bittorrent をどうやって使えばいいですか?
CentOS/FAQ/CentOS-2 の更新がサポートされる期間はどの程度ですか?
CentOS/FAQ/CentOS-3 で RHGFS と RHCS は使えますか?
CentOS/FAQ/CentOS-3 の更新がサポートされる期間はどの程度ですか?
CentOS/FAQ/CentOS-4 で RHGFS と RHCS は使えますか?
CentOS/FAQ/CentOS-4 の centosplus レポジトリとは何ですか?
CentOS/FAQ/CentOS-4 の更新がサポートされる期間はどの程度ですか?
CentOS/FAQ/Donavan 氏 は WhiteBoxLinux と同じく CentOS にも関係している方ですか?
CentOS/FAQ/ISO イメージファイルはどこにありますか?
CentOS/FAQ/Red Hat 社が修正版を発表した後、CentOS に修正が反映されるのにはどのくらいの期間を要しますか?
CentOS/FAQ/Red Hat(R) 社の Directory Server は CentOS-4 でも使えますか?
CentOS/FAQ/どこから CentOS 用の RPM パッケージを入手できますか?
CentOS/FAQ/どこで CentOS 4 用のパッケージ署名鍵を入手できますか?
CentOS/FAQ/どのようなアーキテクチャがサポートされますか?
CentOS/FAQ/どのようにして CentOS の更新情報を入手できますか?
CentOS/FAQ/どのようにして RedHat 9 から CentOS 3 にシステムを移行できますか?
CentOS/FAQ/どのようにして WBEL-3 (White Box Exterprise Linux) から CentOS 3 にシステムを移行できますか?
CentOS/FAQ/なぜ CentOS が存在するのですか?
CentOS/FAQ/私がダウンロードした x86_64 用の CentOS 3.3 はバージョンが RC1 と表示されます...
CentOS/FAQ/上位ベンダーは Enterprise Linux として AS・ES・WS・PWS といった複数のバージョンを提供...
CentOS/FAQ/多くの RPM には redhat や rhel や rh という文字が含まれています。これらは変更しないのですか?
CentOS/FAQ/誰が CentOS 2.0 を管理しているのでしょう。
CentOS/FAQ/誰が CentOS 3 をメンテナンスしているのでしょう?
CentOS/FAQ_ja
CentOS3/security/i386/CESA-2006 0710 Important CentOS 3 i386 kernel
CentOS3/security/i386/CESA-2006 0720 Critical CentOS 3 i386 kdelibs
CentOS3/security/i386/CESA-2006 0725 Moderate CentOS 3 i386 qt
CentOS3/security/i386/CESA-2006 0726 Moderate CentOS 3 i386 wireshark
CentOS3/security/i386/CESA-2006 0727 Moderate CentOS 3 i386 texinfo
CentOS3/security/i386/CESA-2006 0729 Moderate CentOS 3 i386 ruby
CentOS3/security/i386/CESA-2006 0730 Important CentOS 3 i386 php
CentOS3/security/i386/CESA-2006 0734 Critical CentOS 3 i386 seamonkey
CentOS3/security/i386/CESA-2006 0738 Low CentOS 3 i386 openssh
CentOS3/security/i386/CESA-2007 0015 Moderate CentOS 3 i386 ImageMagick
CentOS3/security/i386/CESA-2007 0044 Moderate CentOS 3 i386 bind
CentOS3/security/i386/CESA-2007 0060 Moderate CentOS 3 i386 samba
CentOS3/security/i386/CESA-2007 0064 Moderate CentOS 3 i386 postgresql
CentOS3/security/i386/CESA-2007 0076 Important CentOS 3 i386 php
CentOS3/security/i386/CESA-2007 0086 Critical CentOS 3 i386 gnomemeeting
CentOS3/update/Critical CentOS 3 i386 sendmail
CentOS4/security/i386/CESA-2006 0713 python
CentOS4/security/i386/CESA-2006 0719 Moderate CentOS 4 i386 nss_ldap
CentOS4/security/i386/CESA-2006 0720 Critical CentOS 4 i386 kdelibs
CentOS4/security/i386/CESA-2006 0725 Moderate CentOS 4 i386 qt
CentOS4/security/i386/CESA-2006 0726 Moderate CentOS 4 i386 wireshark
CentOS4/security/i386/CESA-2006 0727 Moderate CentOS 4 i386 texinfo
CentOS4/security/i386/CESA-2006 0729 Moderate CentOS 4 i386 ruby
CentOS4/security/i386/CESA-2006 0730 Important CentOS 4 i386 php
CentOS4/security/i386/CESA-2006 0733 Critical CentOS 4 i386 firefox
CentOS4/security/i386/CESA-2006 0734 Critical CentOS 4 i386 seamonkey
CentOS4/security/i386/CESA-2006 0735 Critical CentOS 4 i386 thunderbird
CentOS4/security/i386/CESA-2006 0738 Low CentOS 4 i386 openssh
CentOS4/security/i386/CESA-2006 0742 Critical CentOS 4 i386 elinks
CentOS4/security/i386/CESA-2007 0008 Moderate CentOS 4 i386 dbus
CentOS4/security/i386/CESA-2007 0014 Important CentOS 4 i386 kernel
CentOS4/security/i386/CESA-2007 0015 Moderate CentOS 4 i386 ImageMagick
CentOS4/security/i386/CESA-2007 0018 Moderate CentOS 4 i386 fetchmail
CentOS4/security/i386/CESA-2007 0019 Moderate CentOS 4 i386 gtk2
CentOS4/security/i386/CESA-2007 0022 Moderate CentOS 4 i386 squirrelmail
CentOS4/security/i386/CESA-2007 0044 Moderate CentOS 4 i386 bind
CentOS4/security/i386/CESA-2007 0060 Moderate CentOS 4 i386 samba
CentOS4/security/i386/CESA-2007 0064 Moderate CentOS 4 i386 postgresql
CentOS4/security/i386/CESA-2007 0076 Important CentOS 4 i386 php
CentOS4/security/i386/CESA-2007 0086 Critical CentOS 4 i386 gnomemeeting
CentOS4/security/x86_64/CESA-2006 0713 python
CentOS4/security/x86_64/CESA-2006 0719 Moderate CentOS 4 x86_64 nss_ldap
CentOS4/security/x86_64/CESA-2006 0720 Critical CentOS 4 x86_64 kdelibs
CentOS4/security/x86_64/CESA-2006 0725 Moderate CentOS 4 i386 qt
CentOS4/security/x86_64/CESA-2006 0726 Moderate CentOS 4 x86_64 wireshark
CentOS4/security/x86_64/CESA-2006 0727 Moderate CentOS 4 x86_64 texinfo
CentOS4/security/x86_64/CESA-2006 0729 Moderate CentOS 4 x86_64 ruby
CentOS4/security/x86_64/CESA-2006 0730 Important CentOS 4 x86_64 php
CentOS4/security/x86_64/CESA-2006 0733 Critical CentOS 4 x86_64 firefox
CentOS4/security/x86_64/CESA-2006 0734 Critical CentOS 4 x86_64 seamonkey
CentOS4/security/x86_64/CESA-2006 0735 Critical CentOS 4 x86_64 thunderbird
CentOS4/security/x86_64/CESA-2006 0738 Low CentOS 4 x86_64 openssh
CentOS4/security/x86_64/CESA-2006 0742 Critical CentOS 4 x86_64 elinks
CentOS4/security/x86_64/CESA-2007 0008 Moderate CentOS 4 x86_64 dbus
CentOS4/security/x86_64/CESA-2007 0014 Important CentOS 4 x86_64 kernel
CentOS4/security/x86_64/CESA-2007 0015 Moderate CentOS 4 x86_64 ImageMagick
CentOS4/security/x86_64/CESA-2007 0018 Moderate CentOS 4 x86_64 fetchmail
CentOS4/security/x86_64/CESA-2007 0019 Moderate CentOS 4 x86_64 gtk2
CentOS4/security/x86_64/CESA-2007 0022 Moderate CentOS 4 x86_64 squirrelmail
CentOS4/security/x86_64/CESA-2007 0044 Moderate CentOS 4 x86_64 bind
CentOS4/security/x86_64/CESA-2007 0060 Moderate CentOS 4 x86_64 samba
CentOS4/security/x86_64/CESA-2007 0064 Moderate CentOS 4 x86_64 postgresql
CentOS4/security/x86_64/CESA-2007 0076 Important CentOS 4 x86_64 php
CentOS4/security/x86_64/CESA-2007 0086 Critical CentOS 4 x86_64 gnomemeeting
CentOS4/update/CESA-2006 0689 kernel
CentOS4/update/Critical CentOS 4 i386 sendmail
C言語
DRAC(Dynamic Relay Authorization)についての日本語情報
DRAC/DRAC(Dynamic Relay Authorization Control)ドキュメント和訳
DRAC/POP IMAP サーバの調整 (POP IMAP Server Modifications)
DRAC/doc/INSTALL
DRAC/doc/PORTING
DRAC/doc/README
DRAC/doc/dracd-setup.linux
DRAC/doc/dracd.allow-sample
DRAC/インストール (Instaling)
DRAC/コンパイル (Compiling)
DRAC/テスト (Testing)
DRAC/メールサーバ調整 (Mail Server Configuration)
DomainKey
DomainKeys
Dovecot/Dovecotって何?
English
FC4/Apache/Apacheのセットアップ
FC4/Apache/一般ユーザのウェブ表示
FC4/FAQ/TeraTerm が文字化けしてますが?
FC4/FAQ/man が文字化けしてますが?
FC4/FAQ/slocate や locate が使えない?
FC4/FAQ/システムの文字コードを EUC_JP にしたいんですが?
FC4/FAQ/シングルモードで動作させるには?
FC4/FAQ/ファイルシステムが Read-Only になってしまいました……
FC4/FAQ/ランレベルの変更をしたいんだけど?
FC4/FSElinx/メモ/FC4 上で SELinux の targeted ポリシーが適用されるデーモン
FC4/FSElinx/メモ/SELinux 環境では quota は使えない
FC4/PHP/マルチバイト文字列関数への対応方法
FC4/SELinux/FC4 で標準の SELinux 動作モード
FC4/SELinux/FC4 上で SELinux のログを確認するには?
FC4/SELinux/SELinux を無効にするには?
FC4/SELinux/structを試した。ハマった
FC4/SELinux/ポリシーを手動で設定するには
FC4/SELinux/動作モード確認・変更と起動時の設定
FC4/TIP/GRUB/カーネル選択時間の変更
FC4/TIP/パスワードの簡易作成
FC4/TIP/簡単に電源を落とす poweroff
FC4/TIP/標準で準備されていないプログラムのRPMは?
FC4/VNCによるリモートからの X Window 操作
FC4/dovecot/dovecot による APOP認証(DIGEST-MD5)を使った安全なログイン
FC4/dovecot/dovecot による MRA(メール受信サーバ)を用いた pop3,pop3s,imap,imap4構築
FC4/quota
FC4/quota/1.quota とはなんだ?食えるのか?
FC4/quota/2.quota を使うための設定
FC4/quota/3.quota の運用によるディスク容量制限
FC4/quota/4.quota とSELinux
FC4/quota/5.quota の設定を廃止する
FC4/sendmail/FC4付属のsendmailでSMTPSとSMTP AUTH(SMTP認証)に対応させる方法
FC4/sendmail/MTA としての sendmail の設定(メールを送るために最低限度すべき事)
FC4/sendmail/SMTPポート25制限対策のサブミッション・ポート(Submission Port)利用
FC4/sendmail/smrsh 制限を手軽に取り除く方法
FC4/ssh/ssh サーバのセキュリティ設定
FC4/telnet/サーバのインストールと設定
FC4/vsftpd
FC4/vsftpd/1.FTP サーバのセットアップ
FC4/vsftpd/2.vsftpd の初期セットアップ
FC4/vsftpd/3.vsftpd の設定変更方法や便利技
FC4/vsftpd/4.vsftpd の削除
FC4/xinetd
FC4/セットアップCDの作成
FC4/セットアップメモ
FC4付属の sendmail で APOP 認証と pop3s への対応(qpopper)
FC4付属の sendmail で POP before SMTP(qpopper+DRAC)への対応
FC5/update/Update: beagle-0.2.3-4
FC5/update/Update: curl-7.15.1-3
FC5/update/Update: perl-Archive-Tar-1.29-1
FC5/update/Update: samba-3.0.22-1.fc5
FC5/update/Update: sendmail-8.13.6-0.FC5.1
FC5/セットアップ CD の作成
FC5/ダウンロード情報(日本国内ミラーの一覧)
FC5/ニュース記事
FC5/パッケージ更新・エラータ
FC5/リリースノート
FC6/Fedora Core 6 のダウンロード情報
FC6/FedoraCore6
FC6/FedoraXenQuickstartFC6
FC6/ReleaseNotes
FC6/Schedule
FC6/セットアップCDの作成
FC6/セットアップ・ガイド
FC6/セットアップ・ガイド/1.CDもしくはDVDからブートする
FC6/セットアップ・ガイド/2.アナコンダでのインストール
FHS
FHS/1. Introduction - はじめに
FHS/2. ファイルシステム
FHS/3. root ファイルシステム
FHS/4. /usr 階層
FHS/5. /var 階層
FHS/6. オペレーティング・システム特有の補足説明
FHS/7. 付録(Appendix)
Fedora
Fedora 7
Fedora 7/Schedule
Fedora Core 6 の新機能まとめ
Fedora Core 6 インストール・ガイド
Fedora Core 6 サーバ運用ガイド
Fedora Foundation
Fedora+Core+6+サーバ運用ガイド
Fedora/F8
Fedora/Fedora Union Project
Fedora/情報を手に入れるには?
FedoraCore/Fedora Legacy shutting down
FedoraCore4/Fedora Core 4 Release Note Errata リリースノート和訳
FedoraCore4/Fedora Core 4 Release Note Extr リリースノート和訳
FedoraCore4/Fedora Core 4 Release Note リリースノート和訳
FedoraCore4/Fedora Core 4 情報のまとめ
FedoraXenQuickstart
FeodraCore4のダウンロード先
FrontPage
GFDL
GFDL 1.2 に基づく当サイト著作権表記(英語です。すみません)
InitNG で高速ブート
InitNG/Documentation
InterWiki
InterWikiName
InterWikiSandBox
InterWikiテクニカル
KTBBS
LVM2(論理ボリュームマネージャ)を CentOS-4 で使うにはどのようにしたらよいのですか?
Linux
LinuxSoft
Linux雑記
Linux入門
Logcheck
Logcheck/README 日本語訳
MAIL
MAIL/RFC 2554 - SMTP Service Extentions for Authentication
MAIL/RFC2554 SMTP Service Extentions for Authentication
MTA/AntiSPAM/Domain Keysって何?
MTA/AntiSPAM/Sender ID を導入してみる
MTA/AntiSPAM/Sender IDって何?
MTA/AntiSPAM/Sendmail への Domain Keys 実装
MTA/AntiSPAM/Sendmail への Sender ID 実装
Mail
MenuBar
Notes
ONSE Telecom Co. (SHINBIRO)
PHP
PayPal
Perl
Pocketstudio.jp Linux Wiki
Pocketstudio.jp Linux Wiki FrontPage
Pocketstuido.jp Linux wiki in Chinese traditional
Pocketstuido.jp Linux wiki in English
PortSentry
PortSentry/README 日本語訳
PukiWiki
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWiki/ツアー
RecentDeleted
RedHat
Rookit Hunter/Fedora Core 4 で試す
Rootkit Hunter
Rootkit Hunter/FAQ 日本語版
SELinux
SELinux Policy Editor について
SELinux/FAQ
SELinux/SELinuxとは何ぞや?
SELinux/SELinux関連書籍
SPAM対策
SandBox
Selinux/SELinuxとは何ぞや?
Selinux/SELinux関連書籍
ServerName
SourceForge
Ubuntu
Unix に関するメモ
Unix/dev/nullの役割
UserDir
VineLinux
WhiteBox
WhiteBoxLinux
WikiEngines
WikiName
WikiWikiWeb
X Windows サーバをインストールしていません。インストール後に X Window サーバを追加できますか?
Xen
Xen/Docs/ユーザーズマニュアル日本語版2.0
Xen/FedoraXenQuickStart
Xen/Xen Faq - Xen 公式 Wiki 日本語訳 2.0
Xen/Xen による Linux 上での仮想化環境構築
Xen/XenFaq - Xen 公式 Wiki 日本語訳
Xen/XenFaq+-+Xen+公式+Wiki+日本語訳
YukiWiki
analog
analog/6.0/doc/analog ドキュメント和訳プロジェクト
analog/6.0/doc/analog/Macintosh
analog/6.0/doc/analog/Windows 95 以降
analog/6.0/doc/analog/analog のカスタマイズ
analog/6.0/doc/analog/analog を使い始める
analog/6.0/doc/analog/その他すべて
analog/6.0/doc/analog/コマンド早見表
analog/6.0/doc/analog/ログファイルの選択
analog/6.0/doc/analog/ログフォーマットの指定
analog/6.0/doc/analog/解析結果について
analog/6.0/doc/analog/基本的なコマンド
analog/6.0/doc/analog/検索語句
analog/6.0/doc/analog/出力の調整
analog/6.0/doc/analog/出力形式
analog/6.0/doc/analog/設定コマンドの構文
analog/log2jp
bbs
bootchart
bootchartで起動時のプロセス推移や負荷をグラフ化
centos4/security/x86_64/cesa-2007 0064 moderate centos 4 x86_64 postgresql
chkrootkit
chkrootkit FAQ 日本語訳
chkrootkit README 日本語訳
chkrootkit 公式サイト日本語化
command/pwd - 現在位置の確認
linux/ML/ネットワーク
linux/ML/全般
linux/xinetd.conf
mta/antispam/sender id を導入してみる
perl/module/Net-Telnetモジュール
pocketstudio.jp linux wiki
qmail/FAQ
rkdat README 和訳
rkdet
rkdet ドキュメント和訳
rkdit ドキュメント和訳
whereis
yum
ご案内
シェル(shell)とは?
システム構成(動作環境)について教えてください
ソフトウェア RAID は CentOS-4 でどのように構築できますか?
パス(PATH)の確認と設定方法は?
プロバイダにこのような通告
プロンプトの確認や設定
ヘルプ
モジュールの基本 - CPAN から Perl のモジュールをインストールする
教えて
参照数
整形ルール
前佛
通りすがりの学生さん
特定ファイルのパスを探すには?
日本語
野球ブログへようこそ!
1
#norelated #navi(FHS) #contents ---- * 3章 root ファイルシステム [#m77aaf25] ** 目的 [#sdd4c552] ルートファイルシステムは適切に起動・復帰・回復し、あるいはシステムを修復することが出来るようになっていなくてはいけません。 - システムを起動するためには他のファイルシステムをマウントするために十分な root 領域が確保されていなければいけません。ここには各種ユーティリティ、設定ファイル、ブートローダー設定、そして起動に重要なデータも含みます。/usr /opt /var には他の領域やファイルシステムから参照できる場所に置かれるよう設計されているでしょう。 - システムの回復・修復を行うにはルートファイルシステム上に破損したシステムの診断や、ベテラン管理者が再構築を行うためのユーティリティが置かれます。 - システムを復元するためには、ルートファイルシステムを用いて、それらユーディリティがシステムバックアップ(フロッピーやテープ上など)から復旧します。 > ''(i) 補足説明'' > 目標を実現する上での主な問題は、どれだけ多くのファイルをルートファイルシステム上におくべきか、あるいは少なくすべきかを熟慮して均衡を保つことでした。ルートファイルシステムを小さくしておくことのほうが望ましいです。 -- 時折 FDD などのとても小さなメディアからマウントされることがあります -- ルートファイルシステムには多くのシステムに特化した設定ファイルが含まれています。例を挙げるなら、システムの kernel やホスト名の記述などです。つまり、ネットワークで結ばれたシステム間であっても、ルートファイルシステムが常に共有可能(shareble)ではないことを意味します。ネットワークでつながっているサーバ間においては、非共有ファイル領域によって占められる領域を減らす役割も持ちます。言い換えれば、小さなローカルハードディスクでもワークステーションになりうることが出来るのです。 -- もしかしたらルートファイルシステムの為に多くの容量を確保できて心底満足しているかもしれませんが、一方で小さな領域しか確保できない方達もいます。多くのファイルをインストールするには、小さな領域のルートファイルシステムを用いることを想定して互換性を持たせなくてはいけません。開発者であるなら、多くのユーザが問題を抱えることを想定したほうがいいでしょう。 -- 他の領域でデータ破損のエラーが発生するよりルートファイルシステムで発生する方が大問題になります。小さなルートファイルシステムであればシステム障害の影響を少なくさせる傾向が見受けられます。 アプリケーション側では決してルートディレクトリ配下に特定のファイルやディレクトリを作成するか必要とさせるようにしてはいけません。FHS 階層システムに従うように、どのようなパッケージも柔軟性を持たせてファイルを適切に配置します。 > ''(i) 補足説明'' > ルートファイルシステム配下に新しいサブディレクトリを作ることを禁止する理由: -- システム管理者はパフォーマンスとセキュリティー上の理由により、ルート領域を小さく単純にしたがっています。 -- たとえ規制をしてもシステム管理者が標準的なファイル階層を乱してなんとか領域をマウントしてしまうかもしれないからです。 -- ディストリビューションはアプリケーションの運用を熟慮し、ルート配下に新しいディレクトリを作らないように極めて注意を払う必要があります。 ** 必要条件 [#ea4df3f4] 以下のディレクトリやシンボリックリンクは / 階層下のものです :ディレクトリ名|''説明'' :bin | 重要なコマンドのバイナリ(binary の bin) : boot | ブートローダーの為の静的なファイル(起動の boot) : dev | デバイスファイル(device の dev) : etc | ホスト特有のシステム設定(etcetera の etc) : lib | 重要な共有ライブラリとカーネルモジュール(library の lib) : media | リムーバブル・メディアのためのマウントポイント(メディア のmedia) : mnt | ファイルシステムの一時的なマウントポイント(mount の mnt) : opt | 追加アプリケーションのソフトウェア・パッケージ(option の opt) : sbin | 重要なシステムコマンド(sysytem binary で sbin) : srv | システムによって提供されるサービスデータ(service の srv) : tmp | 一時的なファイル(temporary の tmp) : usr | 第二階層 : var | 動的データ(Variable の var) 上記のディレクトリの詳細については以下のサブセクションで詳細を規定します。/usr と /var については複雑なため、それぞれ独立した章で説明します。 ** オプション仕様 [#vd72d942] 多くのシステムでは / ディレクトリ配下に以下のディレクトリかディレクトリへのシンボリック・リンクが作成されています。 :ディレクトリ名|説明 :home|ユーザのホームディレクトリ(オプション) :lib<qual>|重要な共有ライブラリの代理構成 (オプション) :root|root ユーザのためのホームディレクトリ(オプション) 以下の項では個々のディレクトリの詳細について述べます。 ** /bin : 重要なコマンドのバイナリ(全ユーザが使用) [#j3489edb] *** 目的 [#k601b493] /bin にはシステム管理者・一般ユーザ共に使用するコマンド群が設置されています。/bin はシングル・ユーザ・モードなど他のファイルシステムが読めない状態でも使えるようになっていなくてはいけません。また、ディレクトリには間接的に実行されるスクリプトが置かれている場合もあります(( /bin に置くほどではないファイルは /usr/bin へ置かなくてはいけません。非rootユーザが必要としない X Window システム, chsh などは /bin へ置かなくても構いません。))。 *** 必要条件 [#k8fbebe1] /bin 配下にサブディレクトリがあってはいけません。 /bin には以下のコマンドあるいはシンボリックリンクが必要です。 : コマンド | ''説明'' : cat | 標準出力にファイルを連結して出力(ファイル表示)します : chgrp | ファイルグループの所有権を変えます : chmod | ファイルアクセス許可を変えます : chown | ファイル所有者とグループを変えます : cp | ファイルとディレクトリをコピーします : date | システムの日付と時刻を表示・設定します : dd | ファイルを変換してコピーします : df | ファイルシステム上の使用領域量を表示します : dmesg | カーネルのリングバッファを表示するか制御します : echo | 1行のテキストを表示します : false | 何もせずに終了します(失敗を意味する 1 を返します) : hostname | 現在のホストシステムの名前を設定・表示します : kill | プロセスにシグナルを送ります(主に終了) : ln | ファイルへのリンクを作成します : mkdir | ディレクトリを作成します : mknod | ブロックデバイスや特別なファイルを作成します : more | ファイルを閲覧するフィルタ(ページ送りをします) : mount | ファイルシステムをマウントします : mv | ファイルを移動します : ps | プロセスの状態を報告します : pwd | 現在のディレクトリ名(present working directory)を表示します : rm | ファイルやディレクトリを削除します : rmdir | 空のディレクトリを削除します : sed | ストリームエディタを使用します : sh | ボーン・コマンド・シェルを実行します : stty | 端末ラインの表示・設定を変更します : su | ユーザ ID とグループ ID を変更してシェルを起動します : sync | ファイルシステムのメモリバッファをディスクと同期させます : umount | ファイルシステムをアンマウント(マウント解除)します : uname | システム情報を表示します > ''(i) 補足説明'' > ''/bin/sh'' があっても、それがボーンシェルの実体ではありません。本当のシェルコマンド(/bin/bash)へのハード・リンクかシンボリック・リンクです。 > ''['' と ''test'' コマンドは、たとえシェルの一部だとしても POSIX2 標準に準拠するため /bin か /usr/bin にバイナリを置かなくてはいけません。 *** オプション仕様 [#r361bbe8] 対応するサブシステムがインストールされている場合、以下のプログラムかシンボリック・リンクは /bin 以下になくてはいけません。 : コマンド | ''説明'' :csh|C シェル(オプション) :ed|ed エディタ(オプション) :tar|tar アーカイブ・ユーティリティー(オプション) :cpio|アーカイブ上でのコピー操作を行う(オプション) :gzip|GNU ファイルの圧縮を行う(オプション) :gunzip|GNU ファイルの伸長(展開)を行う(オプション) :zcat|GNU ファイルの伸長(展開)を行う(オプション) :netstat|ネットワーク関連の統計値を出力する(オプション) :ping|ICMP ネットワークテストを行う(オプション) もし ''gunzip'' と ''zcat'' プログラムがあるなら、それらは gzip へのシンボリック・リンクかハード・リンクです。''/bin/csh'' は ''/bin/tcsh'' あるいは ''/usr/bin/tcsh'' へのシンボリック・リンクの場合があります。 > ''(i) 補足説明'' > tar, gzip, cpio は / 領域への障害が起こったときのシステム回復を可能にするため加えられました。 > 逆にルートパーティションからの修復が必要でないなら、これらのファイルは不要となります。たとえば ROM チップからのルート構成や NFS による /usr へのマウントです。システムの修復をネットワーク経由で行うことを計画しているのであれば、ftp あるいは tftp(ftp接続を受けるために必要)がルートパーティション上に置かれるようにしなくてはいけません。 ** /boot : ブートローダーの為の静的なファイル [#c50e2529] *** 目的 [#j559f934] このディレクトリは起動時に必要とする設定ファイル群とマップ・インストーラーが全て置かれています。カーネルがユーザーモードでのプログラムを実行しはじめる前は /boot へデータを保管します。この中にはマスター・ブート・セクターとセクター・マップ・ファイルを含む場合もあります((ブートプログラムがサーバを起動するときに必要なファイル群は /sbin 以下に置かれなくてはいけません。ブートローダーが必要とする設定ファイルは /etc に置きます。GRUB ブートローダーはブート前に /boot 配下にある設定ファイルを読み込みます。ですが、設定ファイルは /etc に置くべきでした。この場合の答えは /etc/grub/menu.lst -> /boot/menu.lst のようにシンボリック・リンクをはることです。))。 *** オプション仕様 [#b9359746] 特定のオペレーティング・システムではカーネルを / もしくは /boot に置く必要があります((古い i386 アーキテクチャを持つマシンでは /boot はハードウェアデバイス(ハードディスク等)のシリンダ 1024 より前に位置していないとブートできないという問題があります。最近の MIPS システムでは /boot パーティションにファームウェアがアクセスするために MS-DOS といったその他のファイルシステムの為にマウントが必要になる場合があります。/boot といったファイル名を使えないと制限を受けるか、システムの制約を受ける場合もあります。))。 ** /dev : デバイスファイル [#rd6ed35f] *** 目的 [#n950b48c] /dev ディレクトリは特別な場所あるいはデバイスファイルです。 *** オプション使用 [#cbf46051] /dev を手作業で作成しなくてはいけない場合があり得ます。/dev にはデバイスを作成するための MAKEDEV というコマンドが必要です。あるいはローカル・デバイス用に MAKDEV.local というファイルを含む場合もあります。 MAKEDEV はシステム上で構成されている全てのデバイスを個々に認識させるときに必要となります。 ** /etc : ホスト固有のシステム設定 [#t99aa559] *** 目的 [#f16dccde] /etc 階層には設定ファイルが置かれます。"設定ファイル"というのはプログラムの操作や制御を行うときに必要となるローカルなファイルです。ファイルは静的(static)であり、実行可能なバイナリであってはいけません((ブート時に呼び出されるコマンドスクリプトのセットアップは System V や BSD など他のモデルに似ているかもしれません。この領域にはその他の仕様も将来的なバージョンでは加えられるかもしれません。))。 *** 必要条件 [#aac8fa55] /etc 階層下にはバイナリファイルを置いてはいけません((ファイルは直接 /etc 配下におくより /etc 以下のサブディレクトリに置くことを推奨します))。 以下のディレクトリあるいはディレクトリへのシンボリック・リンクが /etc に必要とされます: : コマンド | ''説明'' :opt|/opt の為の設定ファイル :X11|X Window システムのための設定ファイル(オプション) :sgml|SGML の為の設定ファイル(オプション) :xml|XML の為の設定ファイル(オプション) *** オプション仕様 [#y757e060] 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /etc に置かれます: : ディレクトリ名 | ''説明'' :opt|/opt の為の設定ファイル 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /etc に置かれなくてはいけません((ステムがシャドウ・パスワードを実装していれば /etc には /etc/shadow ファイルや /usr/sbin に ''usradd'' や ''usermod''といったファイルが置かれるでしょう。)): : ファイル名 | ''説明'' :opt|/opt の為の設定ファイル :csh.login|C シェルログインのための環境初期化ファイル(オプション) :exports|NFS ファイルシステムのアクセス制御リスト(オプション) :fstab|ファイルシステムのための静的な情報(オプション) :ftpusers|FTP デーモンのユーザアクセス制御リスト(オプション) :gateway|ゲートウェイ・経路を記述したファイル(オプション) :gettydef|getty 使用時の速度と端末設定(オプション) :group|ユーザー・グループ・ファイル(オプション) :host.conf|DNS リゾルバ設定ファイル(オプション) :hosts|ホスト名の静的な情報(オプション) :hosts.allow|TCP ラッパーのためのアクセス許可ホストのリスト(オプション) :hosts.deny|TCP ラッパーのためのアクセス拒否ホストのリスト(オプション) :hosts.equiv|rlogin, rsh, rcp のための信頼できるホストのリスト(オプション) :hosts.lpd|lpd のための信頼出来るホストのリスト(オプション) :inetd.conf|inetd のための設定ファイル(オプション) :iniittab|init のための設定ファイル(オプション) :issue|ログイン前のメッセージ表示・識別情報のファイル(オプション) :ld.so.conf|共有ライブラリの検索をする外部ディレクトリ(オプション) :motd|今日のログイン(message of the day)用のファイル(オプション) :mtab|ファイルシステムについての動的な情報(オプション) :mtools.conf|mtools のための設定ファイル(オプション) :network|ネットワーク名についての静的な情報(オプション) :password|パスワード・ファイル(オプション) :printcap|lpd プリンタ利用可能データベース(オプション) :profile|シェルログインのための環境初期化ファイル(オプション) :protocols|IP プロトコルのリスト(オプション) :resolv.conf|DNS のリゾルバ設定ファイル(オプション) :rpc|RPC プロトコルのリスト(オプション) :securetty|root ログインのための TTY アクセス制御(オプション) :services|ネットワークサービス名とポート番号のリスト(オプション) :shells|適切な(正当な)ログインシェルのパス名(オプション) :syslog.conf|syslogd のための設定ファイル(オプション) mtab を /etc 配下に置くのは歴史的な経緯により不適切とされています((Linuxシステムによっては mtab が /proc/mounts へシンボリック・リンクされているかもしれません。そのような場合には除外されます))。 *** /etc/opt : /opt の為の設定ファイル [#b62b8652] ''目的'' /opt 配下にインストールされるアプリケーションのソフトウェア・パッケージが /opt/<サブディレクトリ名> であれば、対応する設定ファイルのディレクトリ名がが /etc/opt/<サブディレクトリ名>となります。 ''必要条件'' /etc/opt/<サブディレクトリ> の構造に対する制限は特にありません。 特定動作のためのシステムパッケージに含まれる設定ファイルが異なった場所にあれば、/etc/opt/<サブディレクトリ名> ディレクトリに移動させなくてはいけません。 > ''(i) 補足説明'' > /opt に関する補足説明は特にありません。 *** /etc/X11 : X Window システムのための設定(オプション) [#xa9395ae] ''目的'' /etc/X11 は全ての X11 ホストが参照する設定ファイルの場所です。ローカルな環境でのみ利用したい場合は /usr ディレクトリが読み込み専用(read-only)となっている必要があります。 ''オプション指定'' 対応するサブシステムがインストールされていれば、/etc/X11 以下にファイルやシンボリック・リンクがあります。 : ファイル名 | ''説明'' :Xconfig|Xfree86 初期バージョンのための設定ファイル(オプション) :X86Config|Xfree86 バージョン3か4のための設定ファイル(オプション) :Xmodmap|X11 の グローバルなキーボード修正ファイル(オプション) /etc/X11 の中には xdm やその他のプログラム(たとえば若干のウインドウ・マネージャ等)の利用するサブディレクトリが含まれる場合があります((/etc/X11/xdml には xdml の為の設定ファイルが設置されます。これらは /usr/ilb/X11/xdm として以前は配置されたものです。若干のローカルで使用する可変的なデータは /var/lib/xdm に置きます。))。ウインドウ・マネージャーは標準の設定ファイル名である .*wmrc を system.*wmrc として用い(広く受け入れられる代替名が無いため)、サブディレクトリは用いない事を薦めます。どのようなウインドウ・マネージャであっても実際のウインドウ・マネージャのバイナリと同じと識別できる名前を用いなくてはいけません。 *** /etc/sgml : SGML の為の設定ファイル(オプション) [#wf2ea62a] ''目的'' SGML システムが用いるハイレベルに定義されているパラメータ群の定義ファイルが置かれています。ファイル名は *.conf というのが一般的です。ファイル名 *.cat は DTD という SGML 文章の書式定義ファイルで、カタログやリファレンス、その他 DTD が必要とする一覧を含んでいます。優れたカタログはすべてを一覧に集中させているものです。 *** /etc/xml : XML の為の設定ファイル(オプション) [#e164aa19] ''目的'' XML システムが用いるハイレベルに定義されている一般的な設定ファイルが置かれています。ファイル名は *.conf というものが一般的です。優れたカタログは全てを一覧に集中させているものです。 ** /home : ユーザのホームディレクトリ(オプション) [#ubc90598] *** 目的 [#s691d260] /home はかなり標準的な概念ですが、明らかにサイトに特定されたファイルシステムです((管理者によってユーザアカウントを置く場所は様々です。このセクションではユーザのホームディレクトリがただ配置されているという事を記述します。とはいえ、FHS に従うディストリビューションでは /home がユーザのホームディレクトリとして用いられています。小さなシステムでは、それぞれのユーザのディレクトリは /home/smith, /home/torvalds,/ home/operatora 等のように /home 配下の典型的なサブディレクトリです。大規模なシステム(/home ディレクトリが NFS により多くのホストから参照される場合)ではユーザ毎にホームディレクトリを分割する事が効果的です。たとえばユーザによって /home/staff, /home/guests, /home/students などによって完全に分離されている場合もあります。))。セットアップ方法はホスト毎に異なるでしょう。そのため、プログラムは /home 配下に配置すべきではありません((ユーザのホームディレクトリを見つけたい場合には、/etc/passwd を参照するより getpwent(3) ライブラリの機能を用いるべきです。ユーザ情報は NIS 等のようにリモートから管理されている場合もあるからです。))。 *** 必要条件 [#o9e4188f] ユーザが用いるアプリケーションがそれぞれ固有の設定ファイルを持つ場合、ユーザのホームディレクトリ内に . (ドット)で始まるファイル名を用います。アプリケーションがサブディレクトリを必要とする場合も同様に . (ドット)で始まるディレクトリ名を用います。サブディレクトリ内で設定ファイルを置く場合は . を用いないほうが良いでしょう((自動保存やロックファイルであっても、ユーザの許可無くホームディレクトリ内にドットのないファイルやディレクトリを作ることは推奨されません。))。 ** /lib : 重要な共有ライブラリとカーネルモジュール [#i4751618] *** 目的 [#jbe45603] /lib ディレクトリはルートファイルシステム上でシステムを起動したり /bin や /sbin のコマンドを実行させる際に必要となる重要な共有ライブラリを配置します((共有ライブラリは /usr 以下の実行ファイルのためには(X Window 実行ファイルも含めて)適切ではなく、/lib 配下には置くべきではありません。共有ライブラリはとは /bin と /sbin によって実行されるバイナリが必要とされるものだけです。特に、/bin や /sbin が必要としない libm.so.* ライブラリは /usr/lib に置かれる場合もあるでしょう。))。 *** 必要条件 [#a141075a] 最低でも以下のファイル名のパターンを必要とします(ファイルもしくはシンボリック・リンク): : ファイル名 | ''説明'' :libc.so.*|動的にリンクされた C ライブラリ(オプション) :ld*|リンカ・ローダーの実行制御(オプション) もし C プリプロセッサがインストールされるなら、歴史的な経緯から /lib/cpp が参照されるでしょう((バイナリが配置されるのは一般的に /usr/bin/cpp です。))。 *** オプション仕様 [#y316f105] 対応するサブシステムがインストールされる場合、/lib 以下にディレクトリ、あるいはディレクトリへのシンボリック・リンクでなくてはいけません: : ディレクトリ名 | ''説明'' :modules|カーネルが読み込み可能なモジュール(オプション) ** /lib<qual> : 重要な共有ライブラリの代替フォーマット(オプション) [#tafe1c82] *** 目的 [#t605f34a] システムによっては特定フォーマットのバイナリを実行するために /lib とは別個のライブラリを用いる場合があるかもしれません((一般的にはシステム上のバイナリが 64 ビットをサポートするか 32 ビットをサポートするかにより区別され、複数のバイナリフォーマットを持つ場合に同じ名前となる場合もあります。そのようなケースでは /lib は /lib32 と /lib64 といったライブラリのディレクトリ名を持ち、/lib へシンボリック・リンクされているかもしれません。))。 *** 必要条件 [#c192d7a2] 複数のディレクトリが存在する場合は、/lib<qual>/cpp を必要としない以外、一般的な /lib ディレクトリが必要とする条件と同じです((/lib<qual>cpp はまだ用いる事が出来ます:/lib と /lib<qual> が同じ(あるいはシンボリック・リンク)である場合に許可されます。))。 ** /media : リムーバブル・メディアのためのマウントポイント [#saf341dc] *** 目的 [#c89401e6] ディレクトリにはフロッピーディスク、CD-ROM、ZIPディスクなどのようなリムーバブル・メディア(書き換え可能な記録媒体)をマウントするためのサブディレクトリを含みます。 > ''(i) 補足説明'' > 以前から /cdrom , /mnt, /mnt/cdrom といったようにリムーバブル・メディアをマウントするためには多くの異なった場所がありました。マウントポイントを全てルート直下のディレクトリに置くことになれば、リムーバブル・メディア毎に多くの余分なサブディレクトリが必要になってしまうでしょう。とはいえ、最近まで一般的には /mnt をマウントすることが一般的でしたので、伝統的に /mnt ディレクトリを一時的なマウントポイントとして用いることと矛盾してしまうでしょう。 *** オプション指定 [#y05f6134] 対応するサブシステムがインストールされている場合、それらは /media 配下へのディレクトリかシンボリックリンクでなくてはいけません: : ディレクトリ名 | ''説明'' :floppy|フロッピードライブ(オプション) :cdrom|CD-ROM ドライブ(オプション) :cdrecorder|CD-R ドライブ(オプション) :zip|Zip ドライブ(オプション ある種のメディアをマウントすることによって1つ以上のデバイスが存在するシステムでは、'0' に始まってデバイス名を示すマウントディレクトリを作成することができます。ですが、無条件で同じファイル名のものは存在してはいけません((対策として、2つの CD-ROM ドライブを持っているシステムでは /media/cdrom0 と /media/cdrom1 が /media/cdrom へいずれもシンボリックリンクされているかもしれません。))。 ** /mnt : ファイルシステムの一時的なマウントポイント [#wf5412af] *** 目的 [#fc96ab1b] システム管理者が必要なときに一時的にファイルシステムをマウントできるように用いるディレクトリです。ディレクトリにはローカルな利用のみで、動作中のどのようなプログラムに対しても影響を与えてはいけません。 インストール用プログラムはこのディレクトリを使用してはいけません。/mnt ではない適切な未使用ディレクトリをシステムは用いなくてはいけません。 ** /opt : 追加アプリケーションのソフトウェア・パッケージ [#f090bb6d] *** 目的 [#hbd55dc0] /opt は追加アプリケーションのソフトウェア・パッケージのために用います。 パッケージは /opt 配下にパッケージ自身の名前を /opt/<package> とするか /opt/<provider> というディレクトリ階層で配置します。<package> はソフトウェア・パッケージを指し示す名前のことで、<provider> は LANANA(Linux Assigned Name And Number Authority - http://www.lanana.org/ ) に登録してある提供者名です。 *** 必要条件 [#q7fa4e36] : ディレクトリ名 | ''説明'' :<package>|静的なパッケージのオブジェクト(ファイルなど) :<provider>|LANANA に登録された提供者名 /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, /opt/man の各ディレクトリはローカルのシステム管理者が使用するために予約されているディレクトリ名です。パッケージ名によってはローカルのシステム管理者によって初期段階でこれら意図されたディレクトリにファイルやリンクを置く場合もあります。ですが、これら予約名のディレクトリが存在しない場合もありますので注意が必要です。 ユーザによって実行されるプログラムは /opt/<package/bin 配下か /opt/<provider> 配下に置く必要があります。パッケージが UNIX マニュアルページを含む場合は /opt/<package>/share/man か /opt/<provider> 配下に設置し、/usr/share/man 配下と同様の構成を持たなくてはいけません。 パッケージによって可変的なファイル(通常のファイルに対する操作)は /var/opt にインストールされなくてはいけません。詳しくは /var/opt に関するセクションを読んでください。 特定のホストに対する設定ファイルは /etc/opt に設置しなくてはいけません。詳しくは /etc セクションをご覧下さい。 どのようなパッケージでも /opt, /var/opt, /etc/opt 配下のディレクトリ以外にパッケージファイルを置く場合はファイルシステム上で規定されている設置方法に従わなくてはいけません。たとえば、デバイスのロックファイルは /var/lock であり、デバイス自身は /dev でなくてはいけません。 ディストリビューションによってはソフトウェアを /opt にインストールするかもしれませんが、ローカルのシステム管理者の許可無くインストールされたソフトを修正したり削除してはいけません。 > ''(i) 補足説明'' > UNIX コミュニティでは /opt を追加ソフトウェアを置く場所にする習慣があります。System V アプリケーション実行インターフェース[AT&T 1990]では System V インターフェース定義(第三版)を元にし /opt を用いるように定義された事と非常に似ています。 > Intel Binary Compatibility Standard v.2(iBSC2) でも同様に /opt に似た構造が提供されています。 > 一般的にシステムでパッケージが必要とする全てのデータは /opt/<package> 配下に置く必要があり、このなかには /etc/opt<package> と /var/opt/<package> という予約ディレクトリに置くことも含まれます。 > ディストリビューションが /opt を使うにあたり、ディストリビューションによってインストールされるローカルのソフトウェア、特に若干のソフトウェアの実行ファイルパス名と衝突してしまうという障害があります。 > /opt/<provider> のディレクトリ構造を決めるのはソフトウェアのパッケージ次第です。つまり、パッケージは /opt/<provider>/<package> か似たような構造である /opt/package というガイドラインに従う必要があります。パッケージは /opt/<provider>/lib や /opt/<provider>/bin といったディレクトリにサポート用のファイルを必要に応じて分散して配置することができます。 ** /root : root ユーザのためのホームディレクトリ(オプション) [#dd4808ac] *** 目的 [#le6e0380] ルートアカウントのホームディレクトリは開発者かローカル設定によって定義されますが、/root が root の為のホームディレクトリとして推奨される場所です((もしルートアカウントのためのホームディレクトリが存在しなければ、/ をデフォルトとしなければいけないでしょう。タスクの実行にあたり root アカウントは権限のないユーザーが実行することのできないようにすることを推奨しています。root は純粋にシステム管理のためのアカウントです。メール用のサブディレクトリは root アカウントのホームディレクトリは見えないようにして、管理者の役割を持つ root , postmaster, webmaster は適切なユーザにメールを転送させることを推奨します。))。 ** /sbin : 重要なシステムコマンド [#oa15cd57] *** 目的 [#q7d61d7a] システム管理者が用いるユーティリティ(root しか実行できないコマンドも含む)は /sbin, /usr/sbin, /usr/local/sbin に配置されます。/sbin はシステムの起動、回復、修復に必要となる実行ファイルが置かれていて、その他の実行ファイルは /bin に置かれます((元々 /sbin の実行ファイルの中には /etc 配下に置かれていたものもあります。 ))。/usr にマウントされているプログラムは(問題がなければ)一般的には /usr/sbin へ置かれます。システム管理者がローカル環境にプログラムをインストールするのは /usr/local/sbin であるべきです(( 何を /sbin ディレクトリに配置するかを決めるのは単純です:もし標準(システム管理者ではない)ユーザが実行するファイルであれば、それらは /bin ディレクトリに置くべきです。一般ユーザが利用するコマンドは /sbin に置くべきではありません。たとえば、chfn といったファイルはユーザが時折使うため /usr/bin に置かなくてはいけません。ping コマンドは root ユーザが(ネットワークの回復と診断に)用いますが、一般ユーザも使うことがあるので /bin に置かなくてはいけません。/sbin では全ユーザが setuid と setgid プログラム以外のすべての実行ファイルに対して読み込みと実行権限を持つことをお奨めします。/bin と /sbin はセキュリティ上の配慮やオペレーティング・システムから参照するユーザについて考慮されていません。ですが、一般ユーザが使うコマンドは /bin へ、/sbin は管理者によって実行されるべきものとしてファイルの区別を設けたほうが便利でしょう。元々 /sbin に対してはセキュリティ上、一般ユーザが利用してはいけないということはありません。 ))。 *** 必要条件 [#w5f688e6] 以下のコマンドあるいはあるいはシンボリックリンクが /sbin 以下に必要とされます: : コマンド名 | ''説明'' :shutdown|システムを停止する命令です *** オプション指定 [#vc0335ed] 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /sbin に置かれます。 : コマンド名 | ''説明'' :fastoot|ディスクのチェックをせずにシステムを再起動する(オプション) :fasthalt|ディスクのチェックをせずにシステムを停止する(オプション) :fdisk|パーティション・テーブルの操作をする(オプション) :fsck|ファイルシステムの確認と修復をする(オプション) :fsck.*|特定のファイルシステム用に確認と修復をする(オプション) :getty|getty プログラム(オプション) :halt|システムを停止する命令(オプション) :ifconfig|ネットワークインターフェースの構築をする(オプション) :init|システム起動時の最初のプロセス(オプション) :mkfs|ファイルシステムを構築する(オプション) :mkfs.*|特定のファイルシステムを構築する(オプション) :mkswap|スワップ領域の構築をする(オプション) :reboot|システムの再起動をする(オプション) :route|IP 経路テーブルの表示/調整をする(オプション) :swapon|ページング・スワッピングを有効にする(オプション) :swapoff|ページング・スワッピングを無効にする(オプション) :update|定期的にデーモンがファイルシステムのバッファをフラッシュする(オプション) ** /srv : システムによって提供されるサービスデータ [#s8ceff54] *** 目的 [#xeeb70ba] /srv はシステムによって提供されるサイトに特定したデータを置きます。 > ''(i) 補足説明'' > /srv を指定することの主な目的はユーザが特定のサービスのためのデータファイルを見つけやすいようにすることと、サービスが読み込み専用(readonly)、書き込み可能なデータと(CGI スクリプトのような)スクリプトのために特定の置き場所をサービスが必要とする場合のためです。ただし、特定のユーザのみが利用する重要なデータは各ユーザのホームディレクトリに置かれるべきです。 > 現時点で /srv ディレクトリをどのように命名したり扱うかについて具体的に特定されておらず、意見の一致もみられません。/srv が使用を想定しているプロトコルは ftp rsync, www ,cvs といったものです。大きなシステムではシステム管理者が利用しやすいように /srv/physics/www や /srv/compsci/csv のような構造を用いることで利便性が向上するでしょう。ですが、実際のところ /srv ディレクトリ配下にサブディレクトリやファイルを配置を必要とするプログラムはみうけられません。とはいえ、 /srv は FHS 互換システムに定義されており、いずれこのようなデータの置き場所として用いられるべきでしょう。 > ディストリビューションは管理者の権限なく /srv ディレクトリに置かれているファイルを消してはいけないよう注意しなくてはいけません((とりわけ重要なのはディストリビューションが初期状態からインストールしていたり、システムの管理者によって作成されている場合です。))。 ** /tmp : 一時的なファイル [#lbbd3a35] *** 目的 [#d061971c] /tmp ディレクトリは一時的なファイルを必要とするプログラムのために提供されなくてはいけません。 プログラムは /tmp 配下でディレクトリやファイルが存在し続ける事を想定してはいけません。 > ''(i) 補足説明'' > IEEE 標準 P1003.2(POSIX, part 2) では上記のセクションに類似している条件を提示しています。 > /tmp に保管されたデータは操作によっては削除されるかもしれません。/tmp 以下のファイルやディレクトリはシステムの起動時に削除する事を推奨します。 > FHS では歴史的背景と一般的な習慣から /tmp の利用を推奨しましたが、システム管理者にとって必需な標準領域とはなりませんでした。 #navi(FHS)
タイムスタンプを変更しない
#norelated #navi(FHS) #contents ---- * 3章 root ファイルシステム [#m77aaf25] ** 目的 [#sdd4c552] ルートファイルシステムは適切に起動・復帰・回復し、あるいはシステムを修復することが出来るようになっていなくてはいけません。 - システムを起動するためには他のファイルシステムをマウントするために十分な root 領域が確保されていなければいけません。ここには各種ユーティリティ、設定ファイル、ブートローダー設定、そして起動に重要なデータも含みます。/usr /opt /var には他の領域やファイルシステムから参照できる場所に置かれるよう設計されているでしょう。 - システムの回復・修復を行うにはルートファイルシステム上に破損したシステムの診断や、ベテラン管理者が再構築を行うためのユーティリティが置かれます。 - システムを復元するためには、ルートファイルシステムを用いて、それらユーディリティがシステムバックアップ(フロッピーやテープ上など)から復旧します。 > ''(i) 補足説明'' > 目標を実現する上での主な問題は、どれだけ多くのファイルをルートファイルシステム上におくべきか、あるいは少なくすべきかを熟慮して均衡を保つことでした。ルートファイルシステムを小さくしておくことのほうが望ましいです。 -- 時折 FDD などのとても小さなメディアからマウントされることがあります -- ルートファイルシステムには多くのシステムに特化した設定ファイルが含まれています。例を挙げるなら、システムの kernel やホスト名の記述などです。つまり、ネットワークで結ばれたシステム間であっても、ルートファイルシステムが常に共有可能(shareble)ではないことを意味します。ネットワークでつながっているサーバ間においては、非共有ファイル領域によって占められる領域を減らす役割も持ちます。言い換えれば、小さなローカルハードディスクでもワークステーションになりうることが出来るのです。 -- もしかしたらルートファイルシステムの為に多くの容量を確保できて心底満足しているかもしれませんが、一方で小さな領域しか確保できない方達もいます。多くのファイルをインストールするには、小さな領域のルートファイルシステムを用いることを想定して互換性を持たせなくてはいけません。開発者であるなら、多くのユーザが問題を抱えることを想定したほうがいいでしょう。 -- 他の領域でデータ破損のエラーが発生するよりルートファイルシステムで発生する方が大問題になります。小さなルートファイルシステムであればシステム障害の影響を少なくさせる傾向が見受けられます。 アプリケーション側では決してルートディレクトリ配下に特定のファイルやディレクトリを作成するか必要とさせるようにしてはいけません。FHS 階層システムに従うように、どのようなパッケージも柔軟性を持たせてファイルを適切に配置します。 > ''(i) 補足説明'' > ルートファイルシステム配下に新しいサブディレクトリを作ることを禁止する理由: -- システム管理者はパフォーマンスとセキュリティー上の理由により、ルート領域を小さく単純にしたがっています。 -- たとえ規制をしてもシステム管理者が標準的なファイル階層を乱してなんとか領域をマウントしてしまうかもしれないからです。 -- ディストリビューションはアプリケーションの運用を熟慮し、ルート配下に新しいディレクトリを作らないように極めて注意を払う必要があります。 ** 必要条件 [#ea4df3f4] 以下のディレクトリやシンボリックリンクは / 階層下のものです :ディレクトリ名|''説明'' :bin | 重要なコマンドのバイナリ(binary の bin) : boot | ブートローダーの為の静的なファイル(起動の boot) : dev | デバイスファイル(device の dev) : etc | ホスト特有のシステム設定(etcetera の etc) : lib | 重要な共有ライブラリとカーネルモジュール(library の lib) : media | リムーバブル・メディアのためのマウントポイント(メディア のmedia) : mnt | ファイルシステムの一時的なマウントポイント(mount の mnt) : opt | 追加アプリケーションのソフトウェア・パッケージ(option の opt) : sbin | 重要なシステムコマンド(sysytem binary で sbin) : srv | システムによって提供されるサービスデータ(service の srv) : tmp | 一時的なファイル(temporary の tmp) : usr | 第二階層 : var | 動的データ(Variable の var) 上記のディレクトリの詳細については以下のサブセクションで詳細を規定します。/usr と /var については複雑なため、それぞれ独立した章で説明します。 ** オプション仕様 [#vd72d942] 多くのシステムでは / ディレクトリ配下に以下のディレクトリかディレクトリへのシンボリック・リンクが作成されています。 :ディレクトリ名|説明 :home|ユーザのホームディレクトリ(オプション) :lib<qual>|重要な共有ライブラリの代理構成 (オプション) :root|root ユーザのためのホームディレクトリ(オプション) 以下の項では個々のディレクトリの詳細について述べます。 ** /bin : 重要なコマンドのバイナリ(全ユーザが使用) [#j3489edb] *** 目的 [#k601b493] /bin にはシステム管理者・一般ユーザ共に使用するコマンド群が設置されています。/bin はシングル・ユーザ・モードなど他のファイルシステムが読めない状態でも使えるようになっていなくてはいけません。また、ディレクトリには間接的に実行されるスクリプトが置かれている場合もあります(( /bin に置くほどではないファイルは /usr/bin へ置かなくてはいけません。非rootユーザが必要としない X Window システム, chsh などは /bin へ置かなくても構いません。))。 *** 必要条件 [#k8fbebe1] /bin 配下にサブディレクトリがあってはいけません。 /bin には以下のコマンドあるいはシンボリックリンクが必要です。 : コマンド | ''説明'' : cat | 標準出力にファイルを連結して出力(ファイル表示)します : chgrp | ファイルグループの所有権を変えます : chmod | ファイルアクセス許可を変えます : chown | ファイル所有者とグループを変えます : cp | ファイルとディレクトリをコピーします : date | システムの日付と時刻を表示・設定します : dd | ファイルを変換してコピーします : df | ファイルシステム上の使用領域量を表示します : dmesg | カーネルのリングバッファを表示するか制御します : echo | 1行のテキストを表示します : false | 何もせずに終了します(失敗を意味する 1 を返します) : hostname | 現在のホストシステムの名前を設定・表示します : kill | プロセスにシグナルを送ります(主に終了) : ln | ファイルへのリンクを作成します : mkdir | ディレクトリを作成します : mknod | ブロックデバイスや特別なファイルを作成します : more | ファイルを閲覧するフィルタ(ページ送りをします) : mount | ファイルシステムをマウントします : mv | ファイルを移動します : ps | プロセスの状態を報告します : pwd | 現在のディレクトリ名(present working directory)を表示します : rm | ファイルやディレクトリを削除します : rmdir | 空のディレクトリを削除します : sed | ストリームエディタを使用します : sh | ボーン・コマンド・シェルを実行します : stty | 端末ラインの表示・設定を変更します : su | ユーザ ID とグループ ID を変更してシェルを起動します : sync | ファイルシステムのメモリバッファをディスクと同期させます : umount | ファイルシステムをアンマウント(マウント解除)します : uname | システム情報を表示します > ''(i) 補足説明'' > ''/bin/sh'' があっても、それがボーンシェルの実体ではありません。本当のシェルコマンド(/bin/bash)へのハード・リンクかシンボリック・リンクです。 > ''['' と ''test'' コマンドは、たとえシェルの一部だとしても POSIX2 標準に準拠するため /bin か /usr/bin にバイナリを置かなくてはいけません。 *** オプション仕様 [#r361bbe8] 対応するサブシステムがインストールされている場合、以下のプログラムかシンボリック・リンクは /bin 以下になくてはいけません。 : コマンド | ''説明'' :csh|C シェル(オプション) :ed|ed エディタ(オプション) :tar|tar アーカイブ・ユーティリティー(オプション) :cpio|アーカイブ上でのコピー操作を行う(オプション) :gzip|GNU ファイルの圧縮を行う(オプション) :gunzip|GNU ファイルの伸長(展開)を行う(オプション) :zcat|GNU ファイルの伸長(展開)を行う(オプション) :netstat|ネットワーク関連の統計値を出力する(オプション) :ping|ICMP ネットワークテストを行う(オプション) もし ''gunzip'' と ''zcat'' プログラムがあるなら、それらは gzip へのシンボリック・リンクかハード・リンクです。''/bin/csh'' は ''/bin/tcsh'' あるいは ''/usr/bin/tcsh'' へのシンボリック・リンクの場合があります。 > ''(i) 補足説明'' > tar, gzip, cpio は / 領域への障害が起こったときのシステム回復を可能にするため加えられました。 > 逆にルートパーティションからの修復が必要でないなら、これらのファイルは不要となります。たとえば ROM チップからのルート構成や NFS による /usr へのマウントです。システムの修復をネットワーク経由で行うことを計画しているのであれば、ftp あるいは tftp(ftp接続を受けるために必要)がルートパーティション上に置かれるようにしなくてはいけません。 ** /boot : ブートローダーの為の静的なファイル [#c50e2529] *** 目的 [#j559f934] このディレクトリは起動時に必要とする設定ファイル群とマップ・インストーラーが全て置かれています。カーネルがユーザーモードでのプログラムを実行しはじめる前は /boot へデータを保管します。この中にはマスター・ブート・セクターとセクター・マップ・ファイルを含む場合もあります((ブートプログラムがサーバを起動するときに必要なファイル群は /sbin 以下に置かれなくてはいけません。ブートローダーが必要とする設定ファイルは /etc に置きます。GRUB ブートローダーはブート前に /boot 配下にある設定ファイルを読み込みます。ですが、設定ファイルは /etc に置くべきでした。この場合の答えは /etc/grub/menu.lst -> /boot/menu.lst のようにシンボリック・リンクをはることです。))。 *** オプション仕様 [#b9359746] 特定のオペレーティング・システムではカーネルを / もしくは /boot に置く必要があります((古い i386 アーキテクチャを持つマシンでは /boot はハードウェアデバイス(ハードディスク等)のシリンダ 1024 より前に位置していないとブートできないという問題があります。最近の MIPS システムでは /boot パーティションにファームウェアがアクセスするために MS-DOS といったその他のファイルシステムの為にマウントが必要になる場合があります。/boot といったファイル名を使えないと制限を受けるか、システムの制約を受ける場合もあります。))。 ** /dev : デバイスファイル [#rd6ed35f] *** 目的 [#n950b48c] /dev ディレクトリは特別な場所あるいはデバイスファイルです。 *** オプション使用 [#cbf46051] /dev を手作業で作成しなくてはいけない場合があり得ます。/dev にはデバイスを作成するための MAKEDEV というコマンドが必要です。あるいはローカル・デバイス用に MAKDEV.local というファイルを含む場合もあります。 MAKEDEV はシステム上で構成されている全てのデバイスを個々に認識させるときに必要となります。 ** /etc : ホスト固有のシステム設定 [#t99aa559] *** 目的 [#f16dccde] /etc 階層には設定ファイルが置かれます。"設定ファイル"というのはプログラムの操作や制御を行うときに必要となるローカルなファイルです。ファイルは静的(static)であり、実行可能なバイナリであってはいけません((ブート時に呼び出されるコマンドスクリプトのセットアップは System V や BSD など他のモデルに似ているかもしれません。この領域にはその他の仕様も将来的なバージョンでは加えられるかもしれません。))。 *** 必要条件 [#aac8fa55] /etc 階層下にはバイナリファイルを置いてはいけません((ファイルは直接 /etc 配下におくより /etc 以下のサブディレクトリに置くことを推奨します))。 以下のディレクトリあるいはディレクトリへのシンボリック・リンクが /etc に必要とされます: : コマンド | ''説明'' :opt|/opt の為の設定ファイル :X11|X Window システムのための設定ファイル(オプション) :sgml|SGML の為の設定ファイル(オプション) :xml|XML の為の設定ファイル(オプション) *** オプション仕様 [#y757e060] 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /etc に置かれます: : ディレクトリ名 | ''説明'' :opt|/opt の為の設定ファイル 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /etc に置かれなくてはいけません((ステムがシャドウ・パスワードを実装していれば /etc には /etc/shadow ファイルや /usr/sbin に ''usradd'' や ''usermod''といったファイルが置かれるでしょう。)): : ファイル名 | ''説明'' :opt|/opt の為の設定ファイル :csh.login|C シェルログインのための環境初期化ファイル(オプション) :exports|NFS ファイルシステムのアクセス制御リスト(オプション) :fstab|ファイルシステムのための静的な情報(オプション) :ftpusers|FTP デーモンのユーザアクセス制御リスト(オプション) :gateway|ゲートウェイ・経路を記述したファイル(オプション) :gettydef|getty 使用時の速度と端末設定(オプション) :group|ユーザー・グループ・ファイル(オプション) :host.conf|DNS リゾルバ設定ファイル(オプション) :hosts|ホスト名の静的な情報(オプション) :hosts.allow|TCP ラッパーのためのアクセス許可ホストのリスト(オプション) :hosts.deny|TCP ラッパーのためのアクセス拒否ホストのリスト(オプション) :hosts.equiv|rlogin, rsh, rcp のための信頼できるホストのリスト(オプション) :hosts.lpd|lpd のための信頼出来るホストのリスト(オプション) :inetd.conf|inetd のための設定ファイル(オプション) :iniittab|init のための設定ファイル(オプション) :issue|ログイン前のメッセージ表示・識別情報のファイル(オプション) :ld.so.conf|共有ライブラリの検索をする外部ディレクトリ(オプション) :motd|今日のログイン(message of the day)用のファイル(オプション) :mtab|ファイルシステムについての動的な情報(オプション) :mtools.conf|mtools のための設定ファイル(オプション) :network|ネットワーク名についての静的な情報(オプション) :password|パスワード・ファイル(オプション) :printcap|lpd プリンタ利用可能データベース(オプション) :profile|シェルログインのための環境初期化ファイル(オプション) :protocols|IP プロトコルのリスト(オプション) :resolv.conf|DNS のリゾルバ設定ファイル(オプション) :rpc|RPC プロトコルのリスト(オプション) :securetty|root ログインのための TTY アクセス制御(オプション) :services|ネットワークサービス名とポート番号のリスト(オプション) :shells|適切な(正当な)ログインシェルのパス名(オプション) :syslog.conf|syslogd のための設定ファイル(オプション) mtab を /etc 配下に置くのは歴史的な経緯により不適切とされています((Linuxシステムによっては mtab が /proc/mounts へシンボリック・リンクされているかもしれません。そのような場合には除外されます))。 *** /etc/opt : /opt の為の設定ファイル [#b62b8652] ''目的'' /opt 配下にインストールされるアプリケーションのソフトウェア・パッケージが /opt/<サブディレクトリ名> であれば、対応する設定ファイルのディレクトリ名がが /etc/opt/<サブディレクトリ名>となります。 ''必要条件'' /etc/opt/<サブディレクトリ> の構造に対する制限は特にありません。 特定動作のためのシステムパッケージに含まれる設定ファイルが異なった場所にあれば、/etc/opt/<サブディレクトリ名> ディレクトリに移動させなくてはいけません。 > ''(i) 補足説明'' > /opt に関する補足説明は特にありません。 *** /etc/X11 : X Window システムのための設定(オプション) [#xa9395ae] ''目的'' /etc/X11 は全ての X11 ホストが参照する設定ファイルの場所です。ローカルな環境でのみ利用したい場合は /usr ディレクトリが読み込み専用(read-only)となっている必要があります。 ''オプション指定'' 対応するサブシステムがインストールされていれば、/etc/X11 以下にファイルやシンボリック・リンクがあります。 : ファイル名 | ''説明'' :Xconfig|Xfree86 初期バージョンのための設定ファイル(オプション) :X86Config|Xfree86 バージョン3か4のための設定ファイル(オプション) :Xmodmap|X11 の グローバルなキーボード修正ファイル(オプション) /etc/X11 の中には xdm やその他のプログラム(たとえば若干のウインドウ・マネージャ等)の利用するサブディレクトリが含まれる場合があります((/etc/X11/xdml には xdml の為の設定ファイルが設置されます。これらは /usr/ilb/X11/xdm として以前は配置されたものです。若干のローカルで使用する可変的なデータは /var/lib/xdm に置きます。))。ウインドウ・マネージャーは標準の設定ファイル名である .*wmrc を system.*wmrc として用い(広く受け入れられる代替名が無いため)、サブディレクトリは用いない事を薦めます。どのようなウインドウ・マネージャであっても実際のウインドウ・マネージャのバイナリと同じと識別できる名前を用いなくてはいけません。 *** /etc/sgml : SGML の為の設定ファイル(オプション) [#wf2ea62a] ''目的'' SGML システムが用いるハイレベルに定義されているパラメータ群の定義ファイルが置かれています。ファイル名は *.conf というのが一般的です。ファイル名 *.cat は DTD という SGML 文章の書式定義ファイルで、カタログやリファレンス、その他 DTD が必要とする一覧を含んでいます。優れたカタログはすべてを一覧に集中させているものです。 *** /etc/xml : XML の為の設定ファイル(オプション) [#e164aa19] ''目的'' XML システムが用いるハイレベルに定義されている一般的な設定ファイルが置かれています。ファイル名は *.conf というものが一般的です。優れたカタログは全てを一覧に集中させているものです。 ** /home : ユーザのホームディレクトリ(オプション) [#ubc90598] *** 目的 [#s691d260] /home はかなり標準的な概念ですが、明らかにサイトに特定されたファイルシステムです((管理者によってユーザアカウントを置く場所は様々です。このセクションではユーザのホームディレクトリがただ配置されているという事を記述します。とはいえ、FHS に従うディストリビューションでは /home がユーザのホームディレクトリとして用いられています。小さなシステムでは、それぞれのユーザのディレクトリは /home/smith, /home/torvalds,/ home/operatora 等のように /home 配下の典型的なサブディレクトリです。大規模なシステム(/home ディレクトリが NFS により多くのホストから参照される場合)ではユーザ毎にホームディレクトリを分割する事が効果的です。たとえばユーザによって /home/staff, /home/guests, /home/students などによって完全に分離されている場合もあります。))。セットアップ方法はホスト毎に異なるでしょう。そのため、プログラムは /home 配下に配置すべきではありません((ユーザのホームディレクトリを見つけたい場合には、/etc/passwd を参照するより getpwent(3) ライブラリの機能を用いるべきです。ユーザ情報は NIS 等のようにリモートから管理されている場合もあるからです。))。 *** 必要条件 [#o9e4188f] ユーザが用いるアプリケーションがそれぞれ固有の設定ファイルを持つ場合、ユーザのホームディレクトリ内に . (ドット)で始まるファイル名を用います。アプリケーションがサブディレクトリを必要とする場合も同様に . (ドット)で始まるディレクトリ名を用います。サブディレクトリ内で設定ファイルを置く場合は . を用いないほうが良いでしょう((自動保存やロックファイルであっても、ユーザの許可無くホームディレクトリ内にドットのないファイルやディレクトリを作ることは推奨されません。))。 ** /lib : 重要な共有ライブラリとカーネルモジュール [#i4751618] *** 目的 [#jbe45603] /lib ディレクトリはルートファイルシステム上でシステムを起動したり /bin や /sbin のコマンドを実行させる際に必要となる重要な共有ライブラリを配置します((共有ライブラリは /usr 以下の実行ファイルのためには(X Window 実行ファイルも含めて)適切ではなく、/lib 配下には置くべきではありません。共有ライブラリはとは /bin と /sbin によって実行されるバイナリが必要とされるものだけです。特に、/bin や /sbin が必要としない libm.so.* ライブラリは /usr/lib に置かれる場合もあるでしょう。))。 *** 必要条件 [#a141075a] 最低でも以下のファイル名のパターンを必要とします(ファイルもしくはシンボリック・リンク): : ファイル名 | ''説明'' :libc.so.*|動的にリンクされた C ライブラリ(オプション) :ld*|リンカ・ローダーの実行制御(オプション) もし C プリプロセッサがインストールされるなら、歴史的な経緯から /lib/cpp が参照されるでしょう((バイナリが配置されるのは一般的に /usr/bin/cpp です。))。 *** オプション仕様 [#y316f105] 対応するサブシステムがインストールされる場合、/lib 以下にディレクトリ、あるいはディレクトリへのシンボリック・リンクでなくてはいけません: : ディレクトリ名 | ''説明'' :modules|カーネルが読み込み可能なモジュール(オプション) ** /lib<qual> : 重要な共有ライブラリの代替フォーマット(オプション) [#tafe1c82] *** 目的 [#t605f34a] システムによっては特定フォーマットのバイナリを実行するために /lib とは別個のライブラリを用いる場合があるかもしれません((一般的にはシステム上のバイナリが 64 ビットをサポートするか 32 ビットをサポートするかにより区別され、複数のバイナリフォーマットを持つ場合に同じ名前となる場合もあります。そのようなケースでは /lib は /lib32 と /lib64 といったライブラリのディレクトリ名を持ち、/lib へシンボリック・リンクされているかもしれません。))。 *** 必要条件 [#c192d7a2] 複数のディレクトリが存在する場合は、/lib<qual>/cpp を必要としない以外、一般的な /lib ディレクトリが必要とする条件と同じです((/lib<qual>cpp はまだ用いる事が出来ます:/lib と /lib<qual> が同じ(あるいはシンボリック・リンク)である場合に許可されます。))。 ** /media : リムーバブル・メディアのためのマウントポイント [#saf341dc] *** 目的 [#c89401e6] ディレクトリにはフロッピーディスク、CD-ROM、ZIPディスクなどのようなリムーバブル・メディア(書き換え可能な記録媒体)をマウントするためのサブディレクトリを含みます。 > ''(i) 補足説明'' > 以前から /cdrom , /mnt, /mnt/cdrom といったようにリムーバブル・メディアをマウントするためには多くの異なった場所がありました。マウントポイントを全てルート直下のディレクトリに置くことになれば、リムーバブル・メディア毎に多くの余分なサブディレクトリが必要になってしまうでしょう。とはいえ、最近まで一般的には /mnt をマウントすることが一般的でしたので、伝統的に /mnt ディレクトリを一時的なマウントポイントとして用いることと矛盾してしまうでしょう。 *** オプション指定 [#y05f6134] 対応するサブシステムがインストールされている場合、それらは /media 配下へのディレクトリかシンボリックリンクでなくてはいけません: : ディレクトリ名 | ''説明'' :floppy|フロッピードライブ(オプション) :cdrom|CD-ROM ドライブ(オプション) :cdrecorder|CD-R ドライブ(オプション) :zip|Zip ドライブ(オプション ある種のメディアをマウントすることによって1つ以上のデバイスが存在するシステムでは、'0' に始まってデバイス名を示すマウントディレクトリを作成することができます。ですが、無条件で同じファイル名のものは存在してはいけません((対策として、2つの CD-ROM ドライブを持っているシステムでは /media/cdrom0 と /media/cdrom1 が /media/cdrom へいずれもシンボリックリンクされているかもしれません。))。 ** /mnt : ファイルシステムの一時的なマウントポイント [#wf5412af] *** 目的 [#fc96ab1b] システム管理者が必要なときに一時的にファイルシステムをマウントできるように用いるディレクトリです。ディレクトリにはローカルな利用のみで、動作中のどのようなプログラムに対しても影響を与えてはいけません。 インストール用プログラムはこのディレクトリを使用してはいけません。/mnt ではない適切な未使用ディレクトリをシステムは用いなくてはいけません。 ** /opt : 追加アプリケーションのソフトウェア・パッケージ [#f090bb6d] *** 目的 [#hbd55dc0] /opt は追加アプリケーションのソフトウェア・パッケージのために用います。 パッケージは /opt 配下にパッケージ自身の名前を /opt/<package> とするか /opt/<provider> というディレクトリ階層で配置します。<package> はソフトウェア・パッケージを指し示す名前のことで、<provider> は LANANA(Linux Assigned Name And Number Authority - http://www.lanana.org/ ) に登録してある提供者名です。 *** 必要条件 [#q7fa4e36] : ディレクトリ名 | ''説明'' :<package>|静的なパッケージのオブジェクト(ファイルなど) :<provider>|LANANA に登録された提供者名 /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, /opt/man の各ディレクトリはローカルのシステム管理者が使用するために予約されているディレクトリ名です。パッケージ名によってはローカルのシステム管理者によって初期段階でこれら意図されたディレクトリにファイルやリンクを置く場合もあります。ですが、これら予約名のディレクトリが存在しない場合もありますので注意が必要です。 ユーザによって実行されるプログラムは /opt/<package/bin 配下か /opt/<provider> 配下に置く必要があります。パッケージが UNIX マニュアルページを含む場合は /opt/<package>/share/man か /opt/<provider> 配下に設置し、/usr/share/man 配下と同様の構成を持たなくてはいけません。 パッケージによって可変的なファイル(通常のファイルに対する操作)は /var/opt にインストールされなくてはいけません。詳しくは /var/opt に関するセクションを読んでください。 特定のホストに対する設定ファイルは /etc/opt に設置しなくてはいけません。詳しくは /etc セクションをご覧下さい。 どのようなパッケージでも /opt, /var/opt, /etc/opt 配下のディレクトリ以外にパッケージファイルを置く場合はファイルシステム上で規定されている設置方法に従わなくてはいけません。たとえば、デバイスのロックファイルは /var/lock であり、デバイス自身は /dev でなくてはいけません。 ディストリビューションによってはソフトウェアを /opt にインストールするかもしれませんが、ローカルのシステム管理者の許可無くインストールされたソフトを修正したり削除してはいけません。 > ''(i) 補足説明'' > UNIX コミュニティでは /opt を追加ソフトウェアを置く場所にする習慣があります。System V アプリケーション実行インターフェース[AT&T 1990]では System V インターフェース定義(第三版)を元にし /opt を用いるように定義された事と非常に似ています。 > Intel Binary Compatibility Standard v.2(iBSC2) でも同様に /opt に似た構造が提供されています。 > 一般的にシステムでパッケージが必要とする全てのデータは /opt/<package> 配下に置く必要があり、このなかには /etc/opt<package> と /var/opt/<package> という予約ディレクトリに置くことも含まれます。 > ディストリビューションが /opt を使うにあたり、ディストリビューションによってインストールされるローカルのソフトウェア、特に若干のソフトウェアの実行ファイルパス名と衝突してしまうという障害があります。 > /opt/<provider> のディレクトリ構造を決めるのはソフトウェアのパッケージ次第です。つまり、パッケージは /opt/<provider>/<package> か似たような構造である /opt/package というガイドラインに従う必要があります。パッケージは /opt/<provider>/lib や /opt/<provider>/bin といったディレクトリにサポート用のファイルを必要に応じて分散して配置することができます。 ** /root : root ユーザのためのホームディレクトリ(オプション) [#dd4808ac] *** 目的 [#le6e0380] ルートアカウントのホームディレクトリは開発者かローカル設定によって定義されますが、/root が root の為のホームディレクトリとして推奨される場所です((もしルートアカウントのためのホームディレクトリが存在しなければ、/ をデフォルトとしなければいけないでしょう。タスクの実行にあたり root アカウントは権限のないユーザーが実行することのできないようにすることを推奨しています。root は純粋にシステム管理のためのアカウントです。メール用のサブディレクトリは root アカウントのホームディレクトリは見えないようにして、管理者の役割を持つ root , postmaster, webmaster は適切なユーザにメールを転送させることを推奨します。))。 ** /sbin : 重要なシステムコマンド [#oa15cd57] *** 目的 [#q7d61d7a] システム管理者が用いるユーティリティ(root しか実行できないコマンドも含む)は /sbin, /usr/sbin, /usr/local/sbin に配置されます。/sbin はシステムの起動、回復、修復に必要となる実行ファイルが置かれていて、その他の実行ファイルは /bin に置かれます((元々 /sbin の実行ファイルの中には /etc 配下に置かれていたものもあります。 ))。/usr にマウントされているプログラムは(問題がなければ)一般的には /usr/sbin へ置かれます。システム管理者がローカル環境にプログラムをインストールするのは /usr/local/sbin であるべきです(( 何を /sbin ディレクトリに配置するかを決めるのは単純です:もし標準(システム管理者ではない)ユーザが実行するファイルであれば、それらは /bin ディレクトリに置くべきです。一般ユーザが利用するコマンドは /sbin に置くべきではありません。たとえば、chfn といったファイルはユーザが時折使うため /usr/bin に置かなくてはいけません。ping コマンドは root ユーザが(ネットワークの回復と診断に)用いますが、一般ユーザも使うことがあるので /bin に置かなくてはいけません。/sbin では全ユーザが setuid と setgid プログラム以外のすべての実行ファイルに対して読み込みと実行権限を持つことをお奨めします。/bin と /sbin はセキュリティ上の配慮やオペレーティング・システムから参照するユーザについて考慮されていません。ですが、一般ユーザが使うコマンドは /bin へ、/sbin は管理者によって実行されるべきものとしてファイルの区別を設けたほうが便利でしょう。元々 /sbin に対してはセキュリティ上、一般ユーザが利用してはいけないということはありません。 ))。 *** 必要条件 [#w5f688e6] 以下のコマンドあるいはあるいはシンボリックリンクが /sbin 以下に必要とされます: : コマンド名 | ''説明'' :shutdown|システムを停止する命令です *** オプション指定 [#vc0335ed] 対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /sbin に置かれます。 : コマンド名 | ''説明'' :fastoot|ディスクのチェックをせずにシステムを再起動する(オプション) :fasthalt|ディスクのチェックをせずにシステムを停止する(オプション) :fdisk|パーティション・テーブルの操作をする(オプション) :fsck|ファイルシステムの確認と修復をする(オプション) :fsck.*|特定のファイルシステム用に確認と修復をする(オプション) :getty|getty プログラム(オプション) :halt|システムを停止する命令(オプション) :ifconfig|ネットワークインターフェースの構築をする(オプション) :init|システム起動時の最初のプロセス(オプション) :mkfs|ファイルシステムを構築する(オプション) :mkfs.*|特定のファイルシステムを構築する(オプション) :mkswap|スワップ領域の構築をする(オプション) :reboot|システムの再起動をする(オプション) :route|IP 経路テーブルの表示/調整をする(オプション) :swapon|ページング・スワッピングを有効にする(オプション) :swapoff|ページング・スワッピングを無効にする(オプション) :update|定期的にデーモンがファイルシステムのバッファをフラッシュする(オプション) ** /srv : システムによって提供されるサービスデータ [#s8ceff54] *** 目的 [#xeeb70ba] /srv はシステムによって提供されるサイトに特定したデータを置きます。 > ''(i) 補足説明'' > /srv を指定することの主な目的はユーザが特定のサービスのためのデータファイルを見つけやすいようにすることと、サービスが読み込み専用(readonly)、書き込み可能なデータと(CGI スクリプトのような)スクリプトのために特定の置き場所をサービスが必要とする場合のためです。ただし、特定のユーザのみが利用する重要なデータは各ユーザのホームディレクトリに置かれるべきです。 > 現時点で /srv ディレクトリをどのように命名したり扱うかについて具体的に特定されておらず、意見の一致もみられません。/srv が使用を想定しているプロトコルは ftp rsync, www ,cvs といったものです。大きなシステムではシステム管理者が利用しやすいように /srv/physics/www や /srv/compsci/csv のような構造を用いることで利便性が向上するでしょう。ですが、実際のところ /srv ディレクトリ配下にサブディレクトリやファイルを配置を必要とするプログラムはみうけられません。とはいえ、 /srv は FHS 互換システムに定義されており、いずれこのようなデータの置き場所として用いられるべきでしょう。 > ディストリビューションは管理者の権限なく /srv ディレクトリに置かれているファイルを消してはいけないよう注意しなくてはいけません((とりわけ重要なのはディストリビューションが初期状態からインストールしていたり、システムの管理者によって作成されている場合です。))。 ** /tmp : 一時的なファイル [#lbbd3a35] *** 目的 [#d061971c] /tmp ディレクトリは一時的なファイルを必要とするプログラムのために提供されなくてはいけません。 プログラムは /tmp 配下でディレクトリやファイルが存在し続ける事を想定してはいけません。 > ''(i) 補足説明'' > IEEE 標準 P1003.2(POSIX, part 2) では上記のセクションに類似している条件を提示しています。 > /tmp に保管されたデータは操作によっては削除されるかもしれません。/tmp 以下のファイルやディレクトリはシステムの起動時に削除する事を推奨します。 > FHS では歴史的背景と一般的な習慣から /tmp の利用を推奨しましたが、システム管理者にとって必需な標準領域とはなりませんでした。 #navi(FHS)
テキスト整形のルールを表示する