11.10. Файлы настройки

11.10.1. Каталог /etc

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

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

11.10.2. Имена хостов

11.10.2.1. /etc/resolv.conf

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

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

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

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

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

Замечание: Опции search и domain нельзя использовать совместно.

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

11.10.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.example.com myRealHostname foobar1 foobar2

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

11.10.3. Настройка лог файлов

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

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

11.10.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

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015