12.7 設定ファイル

12.7.1 /etc のレイアウト

設定のための情報が含まれているディレクトリはたくさんあります。 それぞれ以下のものを含んでいます。

/etc システム全般の設定情報。 ここにあるデータはシステム 固有のものです。
/etc/defaults デフォルトのシステム設定ファイル。
/etc/mail 追加的な sendmail(8) の設定、他の MTA の設定ファイル。
/etc/ppp ユーザモード、およびカーネルモードの ppp プログラムの設定。
/etc/namedb named(8) のデータのデフォルトの置場。通常 boot ファイルはここに置かれ、 /var/db に置かれた他のデータを 参照するディレクティブを含みます。
/usr/local/etc インストールされたアプリケーションの設定ファイル。 アプリケーションごとのサブディレクトリを含んでいることがあります。
/usr/local/etc/rc.d インストールされたアプリケーションの起動/停止スクリプト。
/var/db 永続的なシステム固有のデータファイル。 たとえば named(8) のゾーンファイル、データベースファイル等。

12.7.2 ホスト名

12.7.2.1 /etc/resolv.conf

/etc/resolv.conf は FreeBSD に インターネットドメインネームシステム (DNS) にどのようにアクセスするかを指定します。

resolv.conf の最もよくあるエントリは

nameserver リゾルバが問い合わせるべきネームサーバの IP アドレス。 サーバはリストの順に 3 番目まで問い合わせられます。
search ホスト名をルックアップするための検索リスト。 通常、ローカルなホスト名のドメインから決定されます。
domain ローカルドメイン名。

基本的な resolv.conf。

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

Note: search オプションと domain オプションは、 どちらか一方しか使ってはいけません。

DHCP を利用している場合、dhclient(8) は通常 resolv.conf を DHCP サーバから受け取っ た情報で書き換えます。

12.7.2.2 /etc/hosts

/etc/hosts は古きインターネットを 偲ばせるシンプルなテキストのデータベースです。 これはホスト名と IP アドレスをマッピングする DNS や NIS と組み合わせて使われます。 LAN でつながれているローカルな計算機は、 名前引きを簡単にするために named(8) サーバを立ち上げるかわりにここに書くことができます。 さらに /etc/hosts はインターネット名のローカルなレコードを提供し、 よくアクセスされる名前を外部に問い合わせるのを減らすためにも使えます。

# $FreeBSD$
#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1                     localhost localhost.my.domain myname.my.domain
127.0.0.1               localhost localhost.my.domain myname.my.domain

#
# Imaginary network.
#10.0.0.2               myname.my.domain myname
#10.0.0.3               myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
#       10.0.0.0        -   10.255.255.255
#       172.16.0.0      -   172.31.255.255
#       192.168.0.0     -   192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers.  PLEASE PLEASE PLEASE do not try
# to invent your own network numbers but instead get one from your
# network provider (if any) or from the Internet Registry (ftp to
# rs.internic.net, directory `/templates').
#

/etc/hosts は、 次のようなごく簡単なフォーマットになっています。

[インターネットアドレス] [正式なホスト名] [別名1] [別名2] ...

例:

10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2

これ以上の情報は hosts(5) をあたってください。

12.7.3 ログファイルに関係する設定

12.7.3.1 syslog.conf

syslog.conf は syslogd(8) プログラムのための設定ファイルです。 これはどのタイプの syslog メッセージを対応する ログファイルに記録するかを指定します。

# $FreeBSD$
#
#       Spaces ARE valid field separators in this file. However,
#       other *nix-like systems still insist on using tabs as field
#       separators. If you are sharing this file between systems, you
#       may want to use only tabs as field separators here.
#       Consult the syslog.conf(5) manual page.
*.err;kern.debug;auth.notice;mail.crit          /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.*                                      /var/log/security
mail.info                                       /var/log/maillog
lpr.info                                        /var/log/lpd-errs
cron.*                                          /var/log/cron
*.err                                           root
*.notice;news.err                               root
*.alert                                         root
*.emerg                                         *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info                                   /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
#*.*                                            /var/log/all.log
# uncomment this to enable logging to a remote log host named loghost
#*.*                                            @loghost
# uncomment these if you're running inn
# news.crit                                     /var/log/news/news.crit
# news.err                                      /var/log/news/news.err
# news.notice                                   /var/log/news/news.notice
!startslip
*.*                                             /var/log/slip.log
!ppp
*.*                                             /var/log/ppp.log

これ以上の情報は syslog.conf(5) のマニュアルページに あたってください。

12.7.3.2 newsyslog.conf

newsyslog.conf は、通常 cron(8) によって予定を決めて実行されるプログラム newsyslog(8) のための設定ファイルです。 newsyslog(8) は、 ログファイルをいつ保存して再編するかを決定します。 logfile は logfile.0 に移され、logfile.0 は logfile.1 に、そして以下同様に移されます。 また、ログファイルを gzip(1) 形式で保存することもできます。 この場合ファイル名は logfile.0.gz, logfile.1.gz の様になります。

newsyslog.conf はどのログファイルが管理され、どのくらいの期間保存され、 そしていつ touch されるかを指定します。 ログファイルはあるサイズに到達するか、ある決められた時刻・ 日時で再編されあるいは保存されます。

# configuration file for newsyslog
# $FreeBSD$
#
# filename          [owner:group]    mode count size when [ZB] [/pid_file] [sig_num]
/var/log/cron                           600  3     100  *     Z
/var/log/amd.log                        644  7     100  *     Z
/var/log/kerberos.log                   644  7     100  *     Z
/var/log/lpd-errs                       644  7     100  *     Z
/var/log/maillog                        644  7     *    @T00  Z
/var/log/sendmail.st                    644  10    *    168   B
/var/log/messages                       644  5     100  *     Z
/var/log/all.log                        600  7     *    @T00  Z
/var/log/slip.log                       600  3     100  *     Z
/var/log/ppp.log                        600  3     100  *     Z
/var/log/security                       600  10    100  *     Z
/var/log/wtmp                           644  3     *    @01T05 B
/var/log/daily.log                      640  7     *    @T00  Z
/var/log/weekly.log                     640  5     1    $W6D0 Z
/var/log/monthly.log                    640  12    *    $M1D0 Z
/var/log/console.log                    640  5     100  *     Z

これ以上の情報は newsyslog(8) のマニュアルページに あたってください。

12.7.4 sysctl.conf

sysctl.conf は rc.conf によく似ています。 値は変数=値のかたちでセットされます。 指定された値はシステムがマルチユーザモードに移行した後でセットされます。 すべての変数がこのモードで設定可能というわけではありません。

以下は sysctl.conf のサンプルで 致命的なシグナルを記録しないように、また Linux プログラムに それらが実際は FreeBSD 上で動いていることを知らせる様に チューニングしています。

kern.logsigexit=0       # Do not log fatal signal exits (e.g. sig 11)
compat.linux.osname=FreeBSD
compat.linux.osrelease=4.3-STABLE

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。