Конфигурационный файл. Подключаемые файлы. Главный конфигурационный файл BIND

Настройки терминалов хранятся в конфигурационных файлах. Файлы текстовые, unicode-ные, их можно редактировать любым текстовым редактором, поддерживающим unicode, Notepad/Блокнот вполне подойдет. Полное описание всех допустимых в конфигурационных файлах параметров и их значений вы можете найти в методичке о параметрах конфигурационного файла .

Итоговая конфигурация терминала получается суммированием параметров из трех источников:

  • Общесистемного конфигурационного файла all.wtc
  • Индивидуального конфигурационного файла
  • Подключаемых файлов согласно списка list.wtc (редактирование списка не поддерживается конфигуратором WTware)

Если терминал найдет свой МАК-адрес в списке list.wtc или найдет свой индивидуальный конфиг, то он попытается подключиться к терминальному серверу. Иначе будет запущен Мастер настройки терминала.

Общесистемный конфигурационный файл

Общесистемный конфигурационный файл называется all.wtc . Он ищется в каталоге Everyone в каталоге данных, который вы указали при инсталляции. В нашем случае это каталог C:\users\all users\WTware\Everyone\ . В него удобно записывать те параметры, которые имеют одинаковые значения для всех терминалов, например server .

Индивидуальный конфигурационный файл

Индивидуальные конфигурационные файлы хранятся в директории Terminals , которая находится в каталоге данных WTware, который вы указали при инсталляции. В нашем случае это каталог C:\users\all users\WTware\Terminals\ .

Терминал, сетевая карта которого имеет мак-адрес 00:01:02:aa:bc:8e , будет искать свою конфигурацию в каталоге МА.КА.ДР.ЕС.ТЕ.РМ , файл должен называться config.wtc . Обратите внимание на регистр букв, если ваш TFTP-сервер находится на Unix-машине!

Обратите также внимание на подключаемые файлы, находящиеся в каталогах Templates и Connections в каталоге данных WTware. С помощью директив template и connection вы сможете подключать к конфигурационному файлу терминала дополнительные файлы.

Список подключаемых файлов

В каталоге ListIncludes (в каталоге данных, указанном при инсталляции) находятся общие конфигурационные файлы с описаниями параметров терминалов, которые терминалы подключают через перечисление в файле list.wtc.

ВНИМАНИЕ! list.wtc предназначен только для ручного конфигурирования терминалов. Графический конфигуратор не читает list.wtc, не читает и не позволяет редактировать файлы из каталога ListIncludes. Поэтому нельзя пытаться настраивать один и тот же терминал и конфигуратором, и через list.wtc.
Синтаксис полностью такой же, как и у конфигурационного файла. Указанные в list.wtc для терминала файлы из этого каталога будут приклеены к началу основного конфигурационного файла терминала перед тем, как терминал его прочитает. Поэтому в файлах в этом каталоге можно писать template, connection, next screen.

Список подключаемых файлов находится в файле Everyone/list.wtc . Формат строки в этом файле:

01:02:03:04:05:06[([имяпользователя@][имятерминала])] [файл [файл...]]] [# комментарий]
Примеры: Означает, что терминал с мак-адресом 02:03:04:05:06:07 прочитает параметры из файла ListIncludes/file1 .
03:04:05:06:07:08(vasja@) file2
Означает, что терминал с мак-адресом 03:04:05:06:07:08 прочитает параметры из файла ListIncludes/file2 и в окошко "Вход в Windows" подставит имя пользователя "vasja".
04:05:06:07:08:09(term5) file6 file7 # Комп замглавбуха.
Означает, что терминалу с мак-адресом 04:05:06:07:08:09 будет присвоено имя term5, аналогично указанию параметра clienthostname , и он прочитает параметры из файлов ListIncludes/file6 и ListIncludes/file7 .
Чтобы можно было указывать имя пользователя русскими буквами, надо открыть этот файл в Notepad и сохранить с Encoding: Unicode.

Порядок чтения, приоритет значений

Конфигурационные файлы читаются в таком порядке:

  1. all.wtc
  2. Файлы, указанные в list.wtc
  3. Файлы, подключенные к конфигурации терминала через директивы template и connection
  4. Индивидуальный конфиг

Параметры переписываются по мере прочтения, и используется последнее значение. Т.е. если например параметр server указан в all.wtc и индивидуальном конфиге, то будет использовано значение из индивидуального конфига, потому что он прочитан позже.

Как правило, конфигурационные файлы имеют текстовый формат и могут быть прочитаны и отредактированы пользователем программы.

Наиболее широко файлы конфигурации в качестве средства настройки используются в ОС семейства Unix : FreeBSD , GNU/Linux и др.

Известные форматы

  • другие…

Wikimedia Foundation . 2010 .

Смотреть что такое "Файл конфигурации" в других словарях:

    Ярлык в Windows NT Ярлык (англ. shortcut), элемент рабочего стола (англ. desktop entry) или файл конфигурации рабочего стола (англ. desktop configuration file)), в компьютерной терминологии файл, служащий указателем на объект (например, файл,… … Википедия

    У этого термина существуют и другие значения, см. Файл (значения). Файл (англ. file) блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности… … Википедия

    Редактирование файла INI с помощью англ. Initialization file) это файл конфигурации, который содержит данные настроек для Microsoft Windows, Windows NT и некоторых приложений. Появились с самых первых версий Windows. В версии Windows 1.01 это… … Википедия

    Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия

    язык описания конфигурации системы - Данный язык обеспечивает возможность обмена информацией о конфигурации устройств в стандартизованном формате между программным обеспечением различных фирм производителей. [Новости Электротехники №3(75). Релейная защита. МЭК 61850] Все параметры… … Справочник технического переводчика

    Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия

    Файл конфигурации или конфигурационный файл используется для хранения настроек компьютерных программ, в том числе и операционных систем. Как правило, конфигурационные файлы имеют текстовый формат и могут быть прочитаны и отредактированы… … Википедия

    1С:FAQ:Обновление - А что мне будет за использование пиратской 1С ки? Релиз конфигурации и платформы Где взять: обновления конфигураций и форм отчетности Обновление релиза (версии) … Бухгалтерская энциклопедия

  • Recovery Mode

Введение

Как-то находясь в поиске как мне прикрутить конфигурационные ini файлы или json к моему сервачку перебирал варианты, но почему-то они были неудобны или слишком простые, или велосипеды. И хоть я люблю xml конфигурирование, но порою это чрезмерно огромные файлы и неудобно для небольшого количества настроек писать много текста. Раз задал другу вопрос по этой теме, он то мне и подкинул библиотеку. Напоминает она json в смеси с yaml.

Библиотека имеет два интерфейса: функциональный и объектный. Они очень похожи, так как объектный использует внутри функциональную реализацию, но имеют некоторые различия, рассмотренные в данном посте.

Настройка и подключение

Библиотека есть во многих репозиториях, поэтому установка простая:
$ sudo aptitude install libconfig8 libconfig8-dev libconfig++ libconfig++-dev

В исходниках С++ подключается одним лишь инклудом:
#include
или
#include
или для С
#include

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

Файл конфига представляет собой следующего вида структуру:
# Example application configuration file version = "1.0"; application: { window: { title = "My Application"; size = { w = 640; h = 480; }; pos = { x = 350; y = 250; }; }; list = (("abc", 123, true), 1.234, (/* an empty list */)); books = ({ title = "Treasure Island"; author = "Robert Louis Stevenson"; price = 29.95; qty = 5; }, { title = "Snow Crash"; author = "Neal Stephenson"; price = 9.99; qty = 8; }); misc: { pi = 3.141592654; bigint = 9223372036854775807L; columns = [ "Last Name", "First Name", "MI" ]; bitmask = 0x1FC3; }; };

Основными видами записей в конфиге являются такие типы:

Элемент (Setting)
Это минимальная значимая часть конфигурационной структуры и имеют вид ключ-значение:
name = value;
или
name: value
Группы (Groups)
Группы могут содержать любое число элементов, но каждый элемент должен содержать уникальный ключ в пределах группы. Записывается в фигурных скобках:
{ settings... }
Массивы (Arrays)
Содержат любое количество элементов, даже ноль, но все элементы состоят лишь из значений и должны иметь один и тот же скалярный тип в пределах массива. Записывает в квадратных скобках:
[ value, value ... ]
Списки (Lists)
Списки содержат ноль или более элементов скалярного типа, массивов, групп или списков. Записывается в круглых скобках:
(value, value ...)
Целочисленые значения (Integers)
Записываются обычным нам десятичным способом (±0-9) или шестнадцатиричном виде (0xA-f). Но целочисленные значения ограничены диапазоном -2147483648..2147483647 (32bit), но если нужны большие диапазоны, то в конце добавляется ’L’.
3578934 897893450934L
Дробные числа с плавающей запятой (floats)
Записывается тоже привычным нам способом
3.1415
Запись с экспонентой стандартная с "e".
Булевые значения (Boolean)
Значения записываются как ’true’ или ’false’ и регистронезависимо (без кавычек, конечно).
Строки (Strings)
Записываются в двойных кавычках как "Обычная длинная строка записанная для примера" .
Следующие варианты в итоге дадут то же значение строки:
"Обычная длинная строка" "записанная для примера"
"Обычная длинная строка" /* комментарий */ " записанная " // комментарий "для примера" .
Комментарии
В конфиге возможны три привычных в С++ вида:
  • # однострочный до конца строки
  • // тоже однострочный до конца строки
  • /*… */ многострочный комментарий включая переносы строк
Внешние подключения (Includes)
Это, в общем, самая вкусная вкусняшка.
# file: quote.cfg quote = "Criticism may not be agreeable, but it is necessary." " It fulfils the same function as pain in the human" " body. It calls attention to an unhealthy state of" " things.\n" "\t--Winston Churchill";
# file: test.cfg info: { name = "Winston Churchill"; @include "quote.cfg" country = "UK"; };

С API

В данной части я не стану расписывать все функции, только лишь основные, так как они в целом похожие, и основные нюансы.

Описание использованых функций ниже

#include #include #include /* Данный пример читает конфигурационный файл "example.cfg" и выводит его составляющие */ int main(int argc, char **argv) { /* используются свои типы. */ config_t cfg; config_setting_t *setting; const char *str; config_init(&cfg); /* обязательная инициализация */ /* Читаем файл. Если ошибка, то завершаем работу */ if(! config_read_file(&cfg, "example.cfg")) { fprintf(stderr, "%s:%d - %s\n", config_error_file(&cfg), config_error_line(&cfg), config_error_text(&cfg)); config_destroy(&cfg); return(EXIT_FAILURE); } /* Поиск некого значения "name". */ if(config_lookup_string(&cfg, "name", &str)) printf("Store name: %s\n\n", str); else fprintf(stderr, "No "name" setting in configuration file.\n"); /* Вывод списка книжек с полок. */ setting = config_lookup(&cfg, "inventory.books"); if(setting != NULL) { int count = config_setting_length(setting); int i; printf("%-30s %-30s %-6s %s\n", "TITLE", "AUTHOR", "PRICE", "QTY"); for(i = 0; i < count; ++i) { config_setting_t *book = config_setting_get_elem(setting, i); /* Выводим только те записи, если они имеют все нужные поля. */ const char *title, *author; double price; int qty; if(!(config_setting_lookup_string(book, "title", &title) && config_setting_lookup_string(book, "author", &author) && config_setting_lookup_float(book, "price", &price) && config_setting_lookup_int(book, "qty", &qty))) continue; printf("%-30s %-30s $%6.2f %3d\n", title, author, price, qty); } putchar("\n"); } /* Вывод всех фильмов с полки. */ setting = config_lookup(&cfg, "inventory.movies"); if(setting != NULL) { unsigned int count = config_setting_length(setting); unsigned int i; printf("%-30s %-10s %-6s %s\n", "TITLE", "MEDIA", "PRICE", "QTY"); for(i = 0; i < count; ++i) { config_setting_t *movie = config_setting_get_elem(setting, i); /* Вывод только тех медиа, у которых заполнены все поля. */ const char *title, *media; double price; int qty; if(!(config_setting_lookup_string(movie, "title", &title) && config_setting_lookup_string(movie, "media", &media) && config_setting_lookup_float(movie, "price", &price) && config_setting_lookup_int(movie, "qty", &qty))) continue; printf("%-30s %-10s $%6.2f %3d\n", title, media, price, qty); } putchar("\n"); } config_destroy(&cfg); /* Освободить память обязательно, если это не конец программы */ return(EXIT_SUCCESS); }

Небольшое описание функционала
Полное описание в документации .

config_t - тип файла конфигурации (это ещё не запись). Грубо говоря, основной контейнер.
config_setting_t - объект элемента конфигурации. В примере используется указатель, возвращаемый контейнером на искомый элемент.
int config_read_file (config_t * config, const char * filename) - функция читает конфигурационный файл filename в память и заполняет объект типа config_t . Можно не читать из файла, а сразу «скормить» строку в config_read_string() или отдать дескриптор файла в config_read()
int config_lookup_string (const config_t * config, const char * path, const char ** value) - ищет и возвращает значение в виде указателя на строку value , по заданному пути path внутри конфига config .
config_setting_t * config_lookup (const config_t * config, const char * path) - ищет запись внутри конфига по заданному внутреннему пути и возвращает её.
config_setting_t * config_setting_get_elem (const config_setting_t * setting, unsigned int index) - используется для массивов, списков чтобы возвращать из него элементы с таким-то номером по порядку
int config_setting_lookup_string (const config_setting_t * setting, const char * name, const char ** value) -
возвращает значение value дочернего элемента name относительно заданной записи setting
Когда же надо получить значение в конкретно заданной записи, то используются функции типа
int config_setting_get_int (const config_setting_t * setting)

C++ API

Тот же пример, но на С++. Полная документация на сайте

#include #include #include #include using namespace std; using namespace libconfig; // Пример, читающий конфигурационный файл "example.cfg" и выводит его записи int main(int argc, char **argv) { Config cfg; // Прочитать файл. Или выйти с ошибкой // Класс в С++ не возвращает ошибку, а кидает исключение try { cfg.readFile("example.cfg"); } catch(const FileIOException &fioex) { std::cerr << "I/O error while reading file." << std::endl; return(EXIT_FAILURE); } catch(const ParseException &pex) { std::cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine() << " - " << pex.getError() << std::endl; return(EXIT_FAILURE); } // Получить некое название. try { string name = cfg.lookup("name"); cout << "Store name: " << name << endl << endl; } catch(const SettingNotFoundException &nfex) { cerr << "No "name" setting in configuration file." << endl; } const Setting& root = cfg.getRoot(); // Найти все книжки на полке. try { const Setting &books = root["inventory"]["books"]; int count = books.getLength(); cout << setw(30) << left << "TITLE" << " " << setw(30) << left << "AUTHOR" << " " << setw(6) << left << "PRICE" << " " << "QTY" << endl; for(int i = 0; i < count; ++i) { const Setting &book = books[i]; // Находим только те записи, что имеют все заполненные поля. string title, author; double price; int qty; if(!(book.lookupValue("title", title) && book.lookupValue("author", author) && book.lookupValue("price", price) && book.lookupValue("qty", qty))) continue; cout << setw(30) << left << title << " " << setw(30) << left << author << " " << "$" << setw(6) << right << price << " " << qty << endl; } cout << endl; } catch(const SettingNotFoundException &nfex) { // Ignore. } // Вывод всех фильмов с полки. try { const Setting &movies = root["inventory"]["movies"]; int count = movies.getLength(); cout << setw(30) << left << "TITLE" << " " << setw(10) << left << "MEDIA" << " " << setw(6) << left << "PRICE" << " " << "QTY" << endl; for(int i = 0; i < count; ++i) { const Setting &movie = movies[i]; // Вывод только тех, что содержат все поля. string title, media; double price; int qty; if(!(movie.lookupValue("title", title) && movie.lookupValue("media", media) && movie.lookupValue("price", price) && movie.lookupValue("qty", qty))) continue; cout << setw(30) << left << title << " " << setw(10) << left << media << " " << "$" << setw(6) << right << price << " " << qty << endl; } cout << endl; } catch(const SettingNotFoundException &nfex) { // Ignore. } return(EXIT_SUCCESS); }
Тут тот же принцип, что и в функциональном стиле, только перед получением данных из конфига необходимо получать корневой элемент cfg.getRoot(); и уже потом от него обращаться к остальным элементам. Так же надо быть внимательным к тому, что практически на все ошибки кидаются исключения

Заключение

Кроме считывания удобных конфигов, в API предоставлен так же функционал создания элементов конфига и его записи на носитель.

Операционная система Linux в отличие от Windows не имеет общего реестра для хранения настроек системы, все настройки хранятся в конфигурационных файлах. Большинство этих файлов размещено в папке /etc/.

Настройки большинства системных и сторонних программ находятся в этих файлах, это могут быть настройки графического сервера, менеджера входа, системных служб, веб-сервера, системы инициализации.

Только часть файлов конфигурации находятся в других папках, например, файлы настройки рабочего окружения в домашнем каталоге пользователя. Новичкам очень важно понимать, за что отвечают те или иные конфигурационные файлы, чтобы при необходимости очень быстро сориентироваться. В этой статье мы рассмотрим основные конфигурационные файлы Linux, их расположение и предназначение.

На самом деле в самой системы Linux конфигурационных файлов нет. Поскольку операционная система - это всего лишь набор программ и ядро, то все эти файлы были созданы определенными программами и читаются ими же для настройки поведения. Большинство файлов, которые мы привыкли считать стандартными, относятся к системе инициализации или к другим системным утилитам.

Как я уже сказал, большинство файлов размещено в /etc. Название этой папки расшифровывается как "et cetera", что с латинского означает "и другие" или "и так далее". Сначала давайте посмотрим содержимое каталога /etc Linux:

Здесь достаточно много различных файлов. Дальше мы рассмотрим назначение многих из них. Список отсортирован по алфавиту.

1. /etc/adjtime

Этот конфигурационный файл отвечает за настройку формата системного времени и читается службой systemd-timedated. Время может быть представлено в двух вариантах: LOCAL - время текущего часового пояса и UTC - время по Гринвичу. Вы можете вручную менять значение или воспользоваться утилитой timedatectl.

2. /etc/bash.bashrc

Этот файл принадлежит командной оболочке bash. Это не совсем конфигурационный файл - а скрипт, его содержимое выполняется при запуске каждого экземпляра bash для настройки оболочки. Точно так же выполняется содержимое файла ~/.bashrc для каждого пользователя.

3. /etc/crontab

6. /etc/group

25. /etc/sudoers

/etc/sudoers - это файл настройки . Эта утилита позволяет выполнять команды от имени других пользователей, в том числе от имени суперпользователя. Но использовать ее могут только те пользователи, которые прописаны в этом файле.

26. /etc/sysctl.conf

Этот файл отвечает за во время выполнения. Тут вы можете задать все параметры из подсистемы /sys/ и они будут сохранены после перезагрузки.

27. /etc/vconsole.conf

У этого файла только одна цель - задать кодировку, раскладку клавиатуры и шрифт по умолчанию для всех виртуальных консолей, запускаемых на машине.

28. /boot/grub/grub.cfg

Этот конфигурационный файл Linux находится не в /etc из-за своего особого предназначения. Здесь содержатся все настройки загрузчика, пункты меню и другие параметры, поэтому он должен быть доступен еще до того как была подключена корневая файловая система.

Выводы

В этой статье мы рассмотрели основные конфигурационные файлы Linux, которые находятся в папке /etc/. Возможно, какие-либо важные файлы, по вашему мнению, упущены, тогда обязательно расскажите о них и их предназначении в комментариях!

Общий формат конфигурационных файлов

Настройка большинства компонентов программного комплекса производится с помощью конфигурационных файлов. Конфигурационные файлы являются текстовыми файлами, что позволяет редактировать их любым текстовым редактором).

Общий формат файла конфигурации:

Начало файла ---

[Имя секции 1]

...
ПараметрN = значение1, ..., значениеK

[Имя секции X]
Параметр1 = значение1, ..., значениеK
...

--- конец файла ---

Файлы конфигурации формируются по следующему принципу:

Символы " ; " или " # " в строках конфигурационного файла обозначают начало комментария – весь текст, идущий в строке за этими символами, пропускается модулями Dr.Web для почтовых серверов UNIX при чтении параметров из конфигурационного файла.

Содержимое файла разбивается на последовательность именованных секций. Возможные имена секций жестко заданы и не могут быть произвольными. Имя секции задается в квадратных скобках.

Каждая секция содержит группу параметров конфигурации, объединенных по смыслу.

В одной строке файла задается значение только одного параметра.

Основной формат задания значения параметра (пробелы, окружающие символ "=", если встречаются, игнорируются):

<Имя параметра> = <Значение>

Возможные имена параметров жестко заданы и не могут быть произвольными.

Все имена секций и параметров в файле регистронезависимы.

Порядок следования секций в файле и параметров внутри секций не имеет значения.

Значения параметров в конфигурационном файле могут быть заключены в кавычки (и должны быть заключены в кавычки в том случае, если содержат пробелы).

Некоторые параметры могут иметь несколько значений, в этом случае значения параметра разделяются запятой, или значение параметра задается несколько раз в разных строках конфигурационного файла. При перечислении значений параметра через запятую пробелы между значением и запятой, если встречаются, игнорируются. Если пробел является частью значения, всё значение необходимо заключить в кавычки.

Пример задания параметра, имеющего несколько значений :

1) Перечисление нескольких значений через запятую:

Parameter = Value1, Value2,"Value 3"

2) Задание тех же значений параметра в разных строках конфигурационного файла:

Parameter = Value2
Parameter = Value1
Parameter = "Value 3"

Правила описания параметров, принятые в данном документе

В данном руководстве каждый параметр описывается следующим образом:

[Статус использования в Правилах ]

ИмяПараметра = {Тип параметра | Возможные значения}

Описание параметра.

{Может ли иметь несколько значений}.

{Особые замечания}

{Важные замечания}

Значение по умолчанию :

ИмяПараметра = {значение | отсутствует}

Статус использования в Правилах обозначается с использованием следующих пиктограмм:

Параметр может быть использован в SETTINGS -части Правил обработки писем для временного изменения его значения при обработке конкретного письма, для которого условная часть правила истинна.

Параметр при использовании в Правилах обработки писем имеет "аддитивную" (накапливающую) семантику, т.е. если для письма истинно несколько Правил, задающих разное значение этого параметра, то в качестве значения параметра выступает объединенный список его значений из сработавших Правил.

Параметр при использовании в Правилах обработки писем поддерживает клонирование писем, т.е. если у письма несколько получателей, и для разных получателей письма истинны разные Правила, задающие различные значения этого параметра, то письмо будет клонировано (по числу получателей), и к каждой копии письма в качестве значения параметра будет использовано значение из Правила, истинного для этого письма.

Если Статус использования в Правилах для параметра не указан, то данный параметр не может быть использован в Правилах обработки писем .

Описание параметров и секций конфигурационных файлов дано в порядке их следования в файле конфигурации, создаваемом при установке программного комплекса Dr.Web для почтовых серверов UNIX .

Поле Тип параметра может принимать следующие значения:

числовое значение (numerical value) - значение параметра является целым неотрицательным числом.

время (time) - значение параметра задается в единицах измерения времени. Значение состоит из целого числа, после которого может идти буква, определяющая вид единиц измерения времени ( s – секунды, m – минуты, h – часы, регистр букв не учитывается). Если в значении параметра буквы нет, то считается, что время задано в секундах.

Примеры : 30s , 15m

размер (size) - значение параметра задается в единицах измерения объема памяти (дисковой или оперативной). Значение состоит из целого числа, после которого может идти буква, определяющая вид единиц измерения объема памяти ( b – байты, k – килобайты, m – мегабайты, g – гигабайты, регистр букв не учитывается). Если в значении параметра буквы нет, то считается, что размер задан в байтах.

Примеры : 20b , 15k

права (permissons) - значение параметра задаётся трехзначным числом, обозначающим права доступа к файлам в формате, принятом в UNIX-системах.
Каждое право является комбинацией (суммой) трех базовых прав:

o Право чтения (r) обозначается числом 4;

o Право записи (w) обозначается числом 2;

o Право исполнения (x) обозначается числом 1.

При этом первая цифра числа задает права для владельца файла, вторая – для группы владельцев файла, а третья – для всех остальных, не являющихся ни владельцами, ни членами соответствующей группы.

Примеры : 755 , 644

логический (Ye s /No ) - Логический тип, значения которого представляются строками " Yes " и " No ".

путь к файлу/каталогу (path to file/directory) - строка, задающая расположение файла или каталога в файловой системе. Помните, что в ОС семейства Linux/UNIX имена файлов и каталогов регистрозависимы. Если указано, что значением параметра может быть маска , то в качестве значений параметра можно использовать файловые маски, содержащие следующие специальные символы:

o ? – замещает любой один символ;

o * – замещает любую (в том числе пустую) последовательность символов.

Пример : " ?.e* " – маска, под которую подпадают файлы, имя которых состоит из любого одного символа, а расширение любой длины, и начинается с буквы " e " (x.exe , g.e , f.enable и т.п.).

действие (action) - строка, содержащая наименование действий, совершаемых над объектами, вызвавшими какую-либо реакцию компонентов программного комплекса Dr.Web для почтовых серверов UNIX . В некоторых случаях для параметра можно задать одно основное действие и до трех дополнительных. Тип параметра в этом случае называется список действий (actions list) . Основное действие в этом случае всегда должно быть первым в списке. Для разных параметров набор допустимых действий может различаться, и в этом случае он указывается отдельно для каждого параметра. Общий перечень действий, которые могут использоваться, см. ниже .

адрес (address) - строка, содержащая адрес сокета компонента Dr.Web для почтовых серверов UNIX или внешнего модуля или программы.
Имеет формат ТИП:АДРЕС . Допустимы следующие типы:

o inet - используются TCP-сокеты, АДРЕС имеет формат ПОРТ@ИМЯ_УЗЛА . ИМЯ_УЗЛА может быть как прямым IP-адресом, так и доменным именем узла.

Пример :

Address = inet:3003@localhost

o local - используются локальные UNIX-сокеты, в этом случае адрес является путем к файлу сокета.

Пример:

Address = local:%var_dir/.daemon

o pid - реальный адрес процесса должен быть прочитан из его PID файла. Такой тип адреса доступен лишь в некоторых случаях и при возможности его использования в описании параметра это указывается явно.

текст (text value), строка (string ) - значение параметра задается в виде текстовой строки, текст в строке может быть заключен в кавычки (если в строке есть пробелы, то кавычки обязательны).

настройки пула (pool options) - настройки пула потоков. Имеют специальный формат, описанный в разделе Специальные типы параметров .

Lookup - строки, задающие разделенные запятыми объекты для поиска.

LookupLite - упрощенный Lookup , в котором можно указывать только либо непосредственное значение, либо Lookup типа file .

хранилище (Storage) - объекты для хранения данных. Синтаксис аналогичен Lookup , за исключением использования другого списка префиксов и того, что в Storage нельзя использовать макрос $s .
Подробнее о типах Lookup , LookupLite и Storage см. в разделе Lookup .

настройки TLS/SSL (TLSSettings) - настройки для работы шифрованного соединения с использованием криптографических протоколов TLS и SSL. Имеют специальный формат, описанный в разделе Специальные типы параметров .

список строк (strings list) - набор текстовых значений, разделенных запятыми.

Если значение параметра соответствует шаблону file:/path_to_file (где path_to_file – путь к файлу), то текстовые значения получаются из указанного в параметре файла. Каждое значение в файле должно записываться в отдельной строке. Если при получении информации из файла произошла ошибка, в файл журнала выводится соответствующее диагностическое сообщение и загрузка программы продолжится.

уровень подробности (log level ) - строка, указывающая вывода информации в некоторый журнал или в службу syslog .

возможные значения (value) - параметр имеет тип, не описанный в предыдущих пунктах данного списка. В этом случае перечисляется список разрешенных для него значений.

Поведение модулей при некорректно заданных файлах конфигурации

Если значение какого-либо параметра задано некорректно, Dr.Web для почтовых серверов UNIX выводит сообщение об ошибке и завершает свою работу.

Если при загрузке какого-либо конфигурационного файла в нем обнаруживаются неизвестные параметры, работа программы продолжается в нормальном режиме, но в файл журнала выводится соответствующее предупреждение.

Некоторые параметры могут использовать в качестве значений регулярные выражения (для каждого параметра отмечается в его описании). По умолчанию используется синтаксис регулярных выражений Perl . С основами регулярных выражений вы можете ознакомиться, например, в Wikipedia (статья " Регулярные выражения ").