Файлы Конфигурации

6.7. Файлы Конфигурации

6.7.1. Каталог /etc

Во FreeBSD определён ряд директорий, предназначенных для хранения конфигурационных файлов. Это:

/etcОсновные файлы конфигурации системы. Тут размещены системно - зависимые данные.
/etc/defaultsВерсии системных конфигурационных файлов по умолчанию.
/etc/mailДополнительные конфигурационные файлы sendmail(8) остальные конфигурационные файлы MTA.
/etc/pppКонфиг-файлы для user- и kernel-ppp программ.
/etc/namedbОсновное место расположения данных named(8). Обычно тут располагается загрузочный файл, содержащий директивы для ссылки на данные /var/db.
/usr/local/etcКонфигурационные файлы установленых приложений. Могут содержать подкаталоги приложений.
/usr/local/etc/rc.dСкрипты запуска/остановки установленных приложений.
/var/dbСистемно - зависимые файлы данных, такие, как файлы named(8), файлы баз данных и т.д.

6.7.2. Имя Компьютера

6.7.2.1. /etc/resolv.conf

/etc/resolv.conf определяет, как ресолвер (resolver) FreeBSD получает доступ к Системе Доменных Имён.

Основные записи resolv.conf:

nameserverIP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное кол-во адресов - 3.
searchСписок доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер.
domainДомен, в котором находится компьютер.

Типичный вид resolv.conf:

    search foobar.com
    nameserver 147.11.1.11
    nameserver 147.11.100.30

Если вы используете DHCP, dhclient(8) обычно перезаписывает resolv.conf информацией, полученной от серверов DHCP.

6.7.2.2. /etc/hosts

/etc/hosts - примитивная текстовая база данных, напоминающая старый Интернет. Она работает совместно с DNS и NIS, обеспечивая соответствие доменного имена IP адресу. Отдельные компьютеры, соединённые с помощью локальной сети могут быть записаны тут вместо named(8) сервера с целью упрощения. Кроме того, /etc/hosts используется для записи IP адресов и соответствующих им доменов, избавляя от внешнего траффика, используемого для запросов к DNS серверам.

    # $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:

    [IP адрес в Интернете] [имя компьютера] [alias1] [alias2] ...

Например:

    10.0.0.1 myRealHostname.foobar.com myRealHostname foobar1 foobar2

За дополнительной информацией обращайтесь к hosts(5).

6.7.3. Конфигурирование лог-файлов (логов)

6.7.3.1. syslog.conf

syslog.conf is является файлом конфигурации для 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).

6.7.3.2. newsyslog.conf

newsyslog.conf - конфигурационный файл newsyslog(8), программы, обычно контролируемой cron(8). newsyslog(8) определяет, когда лог-файлы нуждаются в архивировании и перегруппировке. logfile становится logfile.0, logfile.0 становится logfile.1, и так далее. Дополнительно, лог-файлы могут быть заархивированы в формате gzip(1), что влечёт за собой следующий способ присвоения имён: logfile.0.gz, logfile.1.gz, и т.д.

newsyslog.conf показывает, какие лог-файлы должны быть проинспектированы, какие должны быть сохранены, и когда они должны быть пересмотрены. Лог-файлы могут быть перегруппированы и/или заархивированы, когда они либо достигнут определённого размера, либо при достижении определённой даты/времени.

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

6.7.4. sysctl.conf

sysctl.conf очень похож на rc.conf. Значения устанавливаются в виде variable=value. Указанные значения устанавливаются после перевода системы в многопользовательский режим. Однако не все переменные могут быть инициализированы в этом режиме.

Пример 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