Linuxでプログラムの動作を設定する方法には、コンパイル時にオプションを指定して設定する方法、設定ファイルで実行時に動作を変える方法の2種類が存在する。
前者の場合、設定しなおすにはプログラムの再コンパイルが必要だが、後者の場合は同じプログラムを実行し直す度に(場合によっては実行中に)動作する内容を変更することが可能。
主に、単純なコマンド系プログラムでは前者の方式だけ、シェルやネットワークみたいなシステム系の設定では前者に加えて後者の方式が取られる(というか、用意されてないと使いづらくてしょうがない)。ファイルになってるのは、単純で柔軟性があるという理由だけなので、ユーザーにやさしいフロントエンド系のプログラム(Perlとかの言語で書かれたようなやつ)を使ってファイルを間接的に操作してもOK(*1)。
このページでは、後者の設定ファイルを使ったプログラムとシステムの設定について書いてます。
参考:Understanding Linux configuration files
マシンへのアクセスを制御する設定ファイル。
ファイル名 | コメント | Manページ |
/etc/host.conf | IPアドレスの名前解決方法の設定(今は殆ど使われてない) | host.conf.5 |
/etc/nsswich.conf | 名前解決等の手段を設定 | |
/etc/hosts | IPアドレスとホスト名の対応付け | hosts.5 |
/etc/hosts.allow | アクセス許可設定 | hosts_access.5 |
/etc/hosts.deny | アクセス拒否設定 | hosts_access.5 |
ブート・ログイン時の処理を決定する設定ファイル。
ファイル名 | コメント | Manページ |
/etc/issue, issue.net | ログイン前に表示される注意書き | issue.5, issue.net.5 |
/etc/rc.d/rc | ||
/etc/rc.d/rc.local | ローカル用の起動設定 | |
/etc/rc.d/rc.sysinit | システム用の起動時初期化設定 | |
/etc/rc.d/rcX.d | ブートアップ時・終了時に実行するスクリプトを入れるディレクトリ、ランレベル別 |
ファイルシステム関連の設定ファイル。
ファイル名 | コメント | Manページ |
/etc/mtab | 現在マウントされているファイルシステムの情報 | |
/etc/fstab | マウントするファイルシステムの情報 | fstab.5 |
/etc/mtools.conf | DOS用ユーティリティ向け設定 |
システム管理者向けの設定ファイル。
ファイル名 | コメント | Manページ |
/etc/group | グループ設定 | group.5 |
/etc/nologin | root以外のログインの禁止を示すファイル | nologin.5 |
/etc/passwd | ユーザアカウント情報の設定ファイル | passwd.5 |
/etc/rpmrc | RPMコマンドの設定 | |
/etc/securetty | rootがログインできる端末の設定 | securetty.5 |
/etc/usertty | ||
/etc/shadow | 暗号化パスワード | shadow.5 |
/etc/shells | シェルとして認識されている物の一覧 | shells.5 |
/etc/motd | ログイン後に表示されるお知らせ | motd.5 |
ネットワーク関係の設定ファイル。
ファイル名 | コメント | Manページ |
/etc/gated.conf | ||
/etc/gated.version | ||
/etc/gateway | ||
/etc/protocols | プロトコル定義。変更禁止 | protocols.5 |
/etc/resolv.conf | ネームサーバーなどの設定 | resolv.conf.5 |
/etc/rpc | RPC向けデーターベース。NFS用 | rpc.5 |
/etc/exports | エキスポートされるファイルシステム。NFS用 | exports.5 |
/etc/services | インターネットサービスリスト | services.5 |
/etc/inetd.conf | スーパーサーバ設定ファイル | |
/etc/sendmail.cf | Sendmailの設定(かなり古いバージョンです) | |
/etc/sysconfig/network | ”システムの”ネットワーク関連設定(Red Hat) | |
/etc/network/interfaces | ネットワーク設定(Debian) |
システム関係のコマンドの設定ファイル。
ファイル名 | コメント | Manページ |
/etc/logrotate.conf | ログのロテート(シフト)の設定 | |
/etc/identd.conf | ||
/etc/ld.so.conf | ダイナミックリンカーの設定 | |
/etc/inittab | ブートアップ時・終了時に実行する処理。UNIXで最初に読まれる設定です。 | inittab.5 |
/etc/termcap | 端末設定ファイル | termcap.5 |
デーモンの設定ファイル。
ファイル名 | コメント | Manページ |
/etc/syslog.conf | システムログデーモンの設定 | syslog.conf.5 |
/etc/httpd.conf | Apache HTTPサーバーデーモンの設定(旧バージョン) | |
/etc/modules.conf | 読み込むカーネルモジュールの設定ファイル | modules.conf.5 |
個別ユーザー向け、設定・初期化ファイル。
ファイル名 | コメント | Manページ | 書式 |
~/.bash_logout | ログアウト時に読み込むBashの後始末ファイル | Bashスクリプト | |
~/.bash_profile | ログイン時に読み込むBashの初期化ファイル | Bashスクリプト | |
~/.bash_history | Bash コマンドの履歴ファイル | Bashスクリプト | |
~/.bashrc | 起動時に読み込むBashの設定ファイル | Bashスクリプト |
システムのログは/var/log/syslogなどに出力される。ログを監視することをロギングと呼ぶ。 プロセスの稼働状況はtopコマンドなどで監視できる。システムの稼働状況を監視することをモニタリングと呼ぶ。
たとえば、ブート時にサービスが起動しなかったときは、まずログファイル/var/log/boot.logを見る。その後に、サービス名が分かったらsystemctl status [サービス名]のように実行して、エラーの詳細を見て解決すればよい。
また、ps axで実行中のプロセス一覧を表示できる。kill [PID]でプロセスの強制終了ができる。
cron(クーロンと読む)はデーモンのひとつで、決まった時間になった時に定期的にスクリプトを実行してくれる。
crontabという設定ファイル・コマンドを持つが、基本的にシステムの方でスクリプトを格納するための決められた場所(スクリプトを入れるべきディレクトリ)が用意されているので、その中に記述したスクリプトを放り込めばよい。
*1 そういったものがあれば。Bashの初期化ファイル(シェルスクリプト)みたいに、設定ファイルの書式自体に柔軟性がありすぎると、フロントエンドを作るのも難しい場合もある