FreeBSD ハンドブック
Prev | Chapter 11. 設定とチューニング | Next

# 11.7. 設定ファイル

## 11.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) のゾーンファイル、データベースファイル等。

## 11.7.2. ホスト名

### 11.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 サーバから受け取っ た情報で書き換えます。

### 11.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) をあたってください。

## 11.7.3. ログファイルに関係する設定

### 11.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) のマニュアルページに あたってください。

### 11.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) のマニュアルページに あたってください。

## 11.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

Prev | Home | Next
バーチャルホスト | Up | sysctl によるチューニング