From 8a02f262b81cd7421a0083a4faaac02aa8d9b019 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Sat, 24 Dec 2011 16:09:33 +0200 Subject: [PATCH 1/1] Help updated --- doc/help.odt | Bin 2068646 -> 2066893 bytes doc/help/ch1.xml | 40 +++++----- doc/help/ch2.xml | 10 +-- doc/help/ch3.xml | 145 ++++++++++++++++++------------------ doc/help/ch4.xml | 186 +++++++++++++++++++++++++++-------------------- 5 files changed, 206 insertions(+), 175 deletions(-) diff --git a/doc/help.odt b/doc/help.odt index b1373c8240cbb154c1f642cc484d6032957fb4a0..cc9e93731d957657d3d4c78a82da3028009c1621 100644 GIT binary patch delta 73486 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 delta 75339 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 V(BzhNYP^~OIDJ{S{n{t2)>Nv56n=!B_z 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 - Назначение и возможности системы - Система Stargazer (далее просто «система») предназначена для авторизации и учета трафика в локальных сетях. При написании данной системы была поставлена задача создать продукт, который отвечал бы требованиям большинства локальных сетей для учета в них трафика и средств клиентов, а также безопасной авторизации клиентов. - Система построена по клиент-серверной технологии, что обеспечивает необходимую гибкость и быстродействие. В качестве сервера выступает машина с ОС Linux или FreeBSD и архитектурой x86/x86_64/SPARC. В качестве клиентов могут выступать машины как семейства Windows, так и клиенты с ОС GNU/Linux или FreeBSD. Так же клиентом может выступать любая ОС, в которой есть поддержка сетевых протоколов TCP-IP и WEB-броузер. - Система имеет модульную структуру, что позволяет гибко изменять ее конфигурацию и функциональность. - Основные возможности системы: - - контроль над клиентами сети, их добавление, удаление, текущие корректировки; - авторизация клиента, с последующим разрешением или запретом доступа в Internet; - подсчет трафика по предварительно заданным направлениям и правилам; - подсчет израсходованных клиентом средств и автоматическое отключение в случае их полного расходования; - хранение дополнительной информации о клиенте, такой как домашний адрес, телефон и т.д.; - автоматический пинг всех клиентов сети и вывод результатов на экран; - ведение истории для всех клиентов; - журналирование действий администраторов системы; - оперативное предоставление клиенту информации о его трафике и наличии средств; - формирование подробных отчетов о состоянии клиентов; - подключаемые модули. - - + + Назначение и возможности системы. + Система Stargazer (далее просто «система») предназначена для авторизации и учета трафика в локальных сетях. При написании данной системы была поставлена задача создать продукт, который отвечал бы требованиям большинства локальных сетей для учета в них трафика и средств клиентов, а также безопасной авторизации клиентов. + Система построена по клиент-серверной технологии, что обеспечивает необходимую гибкость и быстродействие. В качестве сервера выступает машина с ОС Linux или FreeBSD и архитектурой x86/x86_64/SPARC. В качестве клиентов могут выступать машины как семейства Windows, так и клиенты с ОС Linux или FreeBSD. Так же клиентом может выступать любая ОС, в которой есть поддержка сетевых протоколов TCP-IP и WEB-броузер. + Система имеет модульную структуру, что позволяет гибко изменять ее конфигурацию и функциональность. + Основные возможности системы: + + контроль над клиентами сети, их добавление, удаление, текущие корректировки; + авторизация клиента, с последующим разрешением или запретом доступа в Internet; + подсчет трафика по предварительно заданным направлениям и правилам; + подсчет израсходованных клиентом средств и автоматическое отключение в случае их полного расходования; + хранение дополнительной информации о клиенте, такой как домашний адрес, телефон и т.д.; + автоматический пинг всех клиентов сети и вывод результатов на экран; + ведение истории для всех клиентов; + журналирование действий администраторов системы; + оперативное предоставление клиенту информации о его трафике и наличии средств; + формирование подробных отчетов о состоянии клиентов; + подключаемые модули; + + \ No newline at end of file diff --git a/doc/help/ch2.xml b/doc/help/ch2.xml index 0657cb68..5235b097 100644 --- a/doc/help/ch2.xml +++ b/doc/help/ch2.xml @@ -1,12 +1,12 @@ - Описание компонентов системы + Описание компонентов системы. Составными компонентами системы являются: - сервер; - конфигуратор; - авторизатор. + Сервер; + Конфигуратор; + Авторизатор. Сервер – служит для авторизации клиентов, манипуляции правилами сетевого фильтра (firewall), подсчета трафика, выполнения финансовых операций, хранения информации о статистике и выдаче её клиентам и администраторам. Конфигуратор – используют администраторы сети. Служит для просмотра и редактирования свойств клиентов. Конфигуратор является основным инструментарием для администрирования системы. Доступ к различным функциям разграничен для различных категорий администраторов. С помощью конфигуратора выполняются все финансовые операции с клиентскими счетами, так же просматривается подробная статистика клиентов. Конфигуратором настраиваются некоторые параметры сервера, например тарифные планы и администраторы. Авторизатор – используется на клиентских машинах. С его помощью происходит авторизация клиента на сервере, получение права на доступ в Интернет или к другим ресурсам, которые разрешены администратором. Так же авторизатор позволяет клиенту просмотреть свою статистику и состояние денежных средств на счету. - + \ No newline at end of file diff --git a/doc/help/ch3.xml b/doc/help/ch3.xml index 034a05f2..28aa749f 100644 --- a/doc/help/ch3.xml +++ b/doc/help/ch3.xml @@ -1,86 +1,89 @@ - Установка системы - Система обычно поставляется в виде 3 файлов: исходных кодов сервера, бинарной сборки конфигуратора и авторизатора. + Установка системы. + Система обычно поставляется в виде 3 файлов: исходных кодов сервера, бинарной сборки конфигуратора и авторизатора. Стабильная версия сервера маркируется так: stg-A.B.src.tgz. A и B – старшая и младшая версия сервера. Промежуточные версии сервера имеют маркировку: stg-A.B-YYYY.MM.DD-HH.MM.SS.tgz. A и B – старшая и младшая версия сервера. YYYY.MM.DD-HH.MM.SS – дата и время сборки. Установочный файл конфигуратора имеет маркировку: sgconfig-A.B.C.win.exe. A.B – старшая и младшая версия конфигуратора. C – версия протокола конфигуратора. Исходные коды конфигуратора имеют маркировку: sgconfig-A.B.C.src.rar. Установочный файл авторизатора имеет маркировку: inetaccess-A.B.C.win.exe. A.B – старшая и младшая версия авторизатора. C – версия протокола авторизатора. Установка сервера - - tar -zxvf stg-A.B.src.tgz - cd stg-A.B.src/projects/stargazer - ./build - make install - + +tar -zxvf stg-A.B.src.tgz +cd stg-A.B.src/projects/stargazer +./build +make install + Заголовок скрипта build содержит набор параметров сборки и установки: - + LDFLAGS – дополнительные ключи компоновщика (ключи, предназначенные непосредственно ld указывать в виде -Wl,<ключ>); - CXXFLAGS – дополнительные ключи компилятора; + CFLAGS, CXXFLAGS – дополнительные ключи компилятора; PREFIX – префикс путей установки; BIN_MODE – права доступа к бинарным файлам системы (0755 по умолчанию); DATA_MODE – права доступа к файлам данных системы (0644 по умолчанию); DIR_MODE — права доступа к каталогам системы (0755 по умолчанию); OWNER – владелец файлов системы (root по умолчанию); - FIREBIRD_GROUP – группа сервера СУБД Firebird (по умолчанию firebird); - DB_ADDRESS – адрес БД (Firebird) системы ( по умолчанию "localhost:/var/stargazer/stargazer.fdb"); - DB_USER – пользователь БД (Firebird) системы (по умолчанию "stg"); - DB_PASSWORD – пароль пользователя БД (Firebird) системы (по умолчанию "123456"); - FIREBIRD_ISQL – путь к командному интерпретатору SQL СУБД Firebird (по умолчанию "/opt/firebird/bin/isql", пользователи Debian и, возможно, некоторых других дистрибутивов должны указать путь к утилите isql-fb); - Параметры указываются в формате <ИМЯ_ПАРАМЕТРА> = <ЗНАЧЕНИЕ_ПАРАМЕТРА> - В случае успешной сборки бинарных файлов сервера и их инсталляции в каталогах /etc и /var появится каталог stargazer с набором конфигурационных файлов. Бинарный файл установиться в каталог /usr/sbin с именем stargazer, библиотеки и модули установятся в каталог /usr/lib/stg/ а заголовочные файлы в каталог /usr/include/stg. - Если сборка прошла без ошибок и необходимые файлы находятся в соответствующих каталогах, то установка считается успешно завершенной. - Для удобства разработчиков и для создания багрепортов возможна сборка в отладочном режиме. Для этого скрипт ./build запускается с параметром debug. В этом режиме сборка не производится, а выполняется только конфигурирование. Для сборки отладочной версии необходимо выполнить команду make (gmake для BSD-систем). Также возможна раздельная установка бинарных файлов и файлов данных. Для этого в Makefile предусмотренны цели install-bin и install-data. make install-bin устанавливает только бинарные файлы (сервер, модули и библиотеки) и заголовочные файлы. make install-data устанавливает конфигурационные файлы и БД. По аналогии с целью install работает и цель uninstall. make uninstall удаляет сервер из системы. uninstall-bin и uninstall-data удаляют бинарные файлы и файлы данных соответственно. - - Внимание! - Для успешной сборки сервера необходима правильно установленная библиотека LibExpat. (Поиск производится в /usr/lib и /usr/local/lib, но при желании с помощью переменных окружения CXXFLAGS и LDFLAGS можно указать и иное месторасположение библиотеки). - - Если в процессе сборки будет обнаружена правильно установленная библиотека fbclient (входит в стандартную поставку СУБД Firebird) в сборку будет включен модуль для работы с СУБД Firebird. Модуль поддерживает работу с СУБД Firebird версии 1.5 и выше. - Если в процессе сборки будет обнаружена правильно установленная библиотека mysqlclient (входит в стандартную поставку СУБД MySQL) в сборку будет включен модуль для работы с СУБД MySQL. Модуль поддерживает работу с СУБД MySQL версии 4.0 и выше. - Если в процессе сборки будет обнаружена библиотека pq в сборку будет включен модуль для работы с СУБД PostgreSQL. Модуль поддерживает работу с СУБД PostgreSQL версии 8.0 и выше. - - Примечание - Если сборка завершилась неудачей, то необходимо проверить доступность библиотеки LibExpat. Пользователи ОС Linux могут выполнить команду ldconfig -p | grep libexpat.so. Если она выведет нечто похожее на - - # ldconfig -p | grep libexpat.so - libexpat.so.1 (libc6) => /usr/lib/libexpat.so.1 - libexpat.so (libc6) => /usr/lib/libexpat.so - - значит библиотека доступна. Если вывод будет пустой – библиотека в системе не найдена. Для пользователей ОС FreeBSD можно выполнить команду ls /usr/lib | grep libexpat.so. Если она выведет нечто похожее на - - # ls /usr/lib | grep libexpat.so - libexpat.so - libexpat.so.4 - - значит библиотека доступна. Если вывод пустой – скорее всего библиотеки в системе нет или она установлена неправильно. Возможно, библиотека установлена в другое место. Если это так – достаточно при выполнении скрипта build в CXXFLAGS с помощью ключа -I указать путь к заголовочным файлам библиотеки, а в LDLFAGS с помощью ключа -L указать путь к самой библиотеке. Для поиска библиотеки можно использовать команды locate, slocate, whereis или find. Если библиотека в системе отсутствует – установите ее используя Ваш пакетный менеджер (apt (Debian, Ubuntu), rpm (RPM-based дистрибутивы), emerge (Gentoo) или др.). Так же библиотеку можно установить из исходных кодов, доступных на странице http://sourceforge.net/projects/expat/. - - Для использования СУБД Firebird в качестве хранилища необходимо наличие библиотеки fbclient. Проверка может быть выполнена аналогично библиотеке LibExpat: ldconfig -p | grep libfbclient.so для ОС Linux и ls /usr/lib | grep libfbclient.so для ОС FreeBSD. Некоторые дистрибутивы позволяют установить ее отдельно от СУБД (например, в Ubuntu соответствующий пакет называется libfbclient1), некоторые – только в составе сервера (например, Gentoo). Исходные коды СУБД Firebird доступны для скачивания со страницы http://www.firebirdsql.org/index.php?op=files. Необходимо заметить, что сами разработчики СУБД Firebird не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. - Для использования СУБД MySQL в качестве хранилища необходимо наличие библиотеки mysqlclient. Проверка выполняется аналогично первым двум: ldconfig -p | grep libmysqlclient_r.so для ОС Linux и ls /usr/lib | grep libmysqlclient_r.so для ОС FreeBSD. Так же проверку можно выполнить с помощью утилиты mysql_config. Ее вызов с ключем --libs_r должен выдать что-то похожее на - - $ mysql_config --libs - -Wl,-O1 -rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto - - Необходима именно реентерабельная версия библиотеки, т.к. Сам плагин не имеет блокировок. Некоторые дистрибутивы позволяют установить ее отдельно от СУБД (например, в Ubuntu соответствующие пакеты называются libmysqlclient15-dev и libmysqlclient15off), некоторые – только в составе сервера (например, Gentoo). Исходные коды открытой/свободной версии СУБД MySQL доступны для скачивания со страницы http://dev.mysql.com/downloads/mysql/5.0.html. Необходимо заметить, что сами разработчики СУБД MySQL не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД MySQL, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. - Для использования СУБД PostgreSQL необходимо наличие библиотеки pq. Проверка выполняется аналогично предыдущим: ldconfig -p | grep libpq.so для ОС Linux и ls /usr/lib | grep libpq.so для ОС FreeBSD. Так-же проверку можно выполнить с использованием утилиты pg_config или pkg_config. Ее вызов с ключем --libdir выдать что-то похожее на - - $ pg_config --libdir - /usr/lib - - Обычно библиотека устанавливается отдельно от самой СУБД. Например, в Debian соответствующий пакет называется libpq5 и libpq-dev. Исходные коды библиотеки можно загрузить со страницы http://www.postgresql.org/ftp/source/. Необходимо заметить, что сами разработчики СУБД PostgreSQL не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД PostgreSQL, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. - - - Установка авторизатора и конфигуратора - Для установки конфигуратора необходимо запустить установочный файл и следовать вопросам мастера установки. - Для установки авторизатора необходимо запустить установочный файл и следовать вопросам мастера установки. - - + Параметры указываются в формате <ИМЯ_ПАРАМЕТРА> = <НАЧЕНИЕ_ПАРАМЕТРА>. CFLAGS, CXXFLAGS и LDFLAGS можно передавать в скрипт build из окружения. Например так: + +CFLAGS=-O2 CXXFLAGS=-O2 LDFLAGS=-Wl,--as-needed ./build + + Следует учитывать тот факт что исходный код сервера содержит в себе модули написанные как на C++ так и на C, по этому необходимо передавать флаги компилятора через обе переменные: CFLAGS и CXXFLAGS. При сборке сервера для использования на «боевом» сервере (или для включения в дистрибутив) настоятельно рекомендуется использовать оптимизацию (флаг компилятора -O). Обычно достаточно указать -O2. При отладочной сборке, в общем случае, оптимизацию лучше не включать. + В случае успешной сборки бинарных файлов сервера и их инсталляции в каталогах /etc и /var появится каталог stargazer с набором конфигурационных файлов. Бинарный файл установиться в каталог /usr/sbin с именем stargazer, библиотеки и модули установятся в каталог /usr/lib/stg/ а заголовочные файлы в каталог /usr/include/stg. + Если сборка прошла без ошибок и необходимые файлы находятся в соответствующих каталогах, то установка считается успешно завершенной. + Для удобства разработчиков и для создания багрепортов возможна сборка в отладочном режиме. Для этого скрипт ./build запускается с параметром debug. В этом режиме сборка не производится, а выполняется только конфигурирование. Для сборки отладочной версии необходимо выполнить команду make (gmake для BSD-систем). Также возможна раздельная установка бинарных файлов и файлов данных. Для этого в Makefile предусмотрены цели install-bin и install-data. make install-bin устанавливает только бинарные файлы (сервер, модули и библиотеки) и заголовочные файлы. make install-data устанавливает конфигурационные файлы и файловую БД. По аналогии с целью install работает и цель uninstall. make uninstall удаляет сервер из системы. uninstall-bin и uninstall-data удаляют бинарные файлы и файлы данных соответственно. + При обновлении системы настоятельно рекомендуется использовать команду make install-bin. + + Внимание! + Для успешной сборки сервера необходима правильно установленная библиотека LibExpat. (Поиск производится в /usr/lib и /usr/local/lib, но при желании с помощью переменных окружения CFLAGS/CXXFLAGS и LDFLAGS можно указать и иное месторасположение библиотеки). + + Если в процессе сборки будет обнаружена правильно установленная библиотека fbclient (входит в стандартную поставку СУБД Firebird) в сборку будет включен модуль для работы с СУБД Firebird. Модуль поддерживает работу с СУБД Firebird версии 1.5 и выше. + Если в процессе сборки будет обнаружена правильно установленная библиотека mysqlclient (входит в стандартную поставку СУБД MySQL) в сборку будет включен модуль для работы с СУБД MySQL. Модуль поддерживает работу с СУБД MySQL версии 4.0 и выше. + Если в процессе сборки будет обнаружена библиотека pq в сборку будет включен модуль для работы с СУБД PostgreSQL. Модуль поддерживает работу с СУБД PostgreSQL версии 8.0 и выше. + + Примечание: + Если сборка завершилась неудачей, то необходимо проверить доступность библиотеки LibExpat. Пользователи ОС Linux могут выполнить команду ldconfig -p | grep libexpat.so. Если она выведет нечто похожее на + +# ldconfig -p | grep libexpat.so +libexpat.so.1 (libc6) => /usr/lib/libexpat.so.1 +libexpat.so (libc6) => /usr/lib/libexpat.so + + значит библиотека доступна. Если вывод будет пустой – библиотека в системе не найдена. Для пользователей ОС FreeBSD можно выполнить команду ls /usr/lib | grep libexpat.so. Если она выведет нечто похожее на + +$ ls /usr/lib | grep libexpat.so +libexpat.so +libexpat.so.4 + + значит библиотека доступна. Если вывод пустой – скорее всего библиотеки в системе нет или она установлена неправильно. + + Возможно, библиотека установлена в другое место. Если это так – достаточно при выполнении скрипта build в CFLAGS/CXXFLAGS с помощью ключа -I указать путь к заголовочным файлам библиотеки, а в LDLFAGS с помощью ключа -L указать путь к самой библиотеке. Для поиска библиотеки можно использовать команды locate, slocate, whereis или find. Если библиотека в системе отсутствует – установите ее используя Ваш пакетный менеджер (apt (Debian, Ubuntu), rpm (RPM-based дистрибутивы), emerge (Gentoo) или др.). Так же библиотеку можно установить из исходных кодов, доступных на странице http://sourceforge.net/projects/expat/. + Для использования СУБД Firebird в качестве хранилища необходимо наличие библиотеки fbclient. Проверка может быть выполнена аналогично библиотеке LibExpat: ldconfig -p | grep libfbclient.so для ОС Linux и ls /usr/lib | grep libfbclient.so для ОС FreeBSD. Некоторые дистрибутивы позволяют установить ее отдельно от СУБД (например, в Ubuntu соответствующий пакет называется libfbclient1), некоторые – только в составе сервера (например, Gentoo). Исходные коды СУБД Firebird доступны для скачивания со страницы http://www.firebirdsql.org/index.php?op=files. Необходимо заметить, что сами разработчики СУБД Firebird не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. + Для использования СУБД MySQL в качестве хранилища необходимо наличие библиотеки mysqlclient. Проверка выполняется аналогично первым двум: ldconfig -p | grep libmysqlclient_r.so для ОС Linux и ls /usr/lib | grep libmysqlclient_r.so для ОС FreeBSD. Так же проверку можно выполнить с помощью утилиты mysql_config. Ее вызов с ключем --libs_r должен выдать что-то похожее на + +$ mysql_config --libs +-Wl,-O1 -rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto + + Необходима именно реентерабельная версия библиотеки, т.к. Сам плагин не имеет блокировок. Некоторые дистрибутивы позволяют установить ее отдельно от СУБД (например, в Ubuntu соответствующие пакеты называются libmysqlclient15-dev и libmysqlclient15off), некоторые – только в составе сервера (например, Gentoo). Исходные коды открытой/свободной версии СУБД MySQL доступны для скачивания со страницы http://dev.mysql.com/downloads/mysql/5.0.html. Необходимо заметить, что сами разработчики СУБД MySQL не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД MySQL, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. + Для использования СУБД PostgreSQL необходимо наличие библиотеки pq. Проверка выполняется аналогично предыдущим: ldconfig -p | grep libpq.so для ОС Linux и ls /usr/lib | grep libpq.so для ОС FreeBSD. Так-же проверку можно выполнить с использованием утилиты pg_config или pkg_config. Ее вызов с ключем --libdir выдать что-то похожее на + +$ pg_config --libdir +/usr/lib + + Обычно библиотека устанавливается отдельно от самой СУБД. Например, в Debian соответствующий пакет называется libpq5 и libpq-dev. Исходные коды библиотеки можно загрузить со страницы http://www.postgresql.org/ftp/source/. Необходимо заметить, что сами разработчики СУБД PostgreSQL не разделяют свой продукт на клиентскую и серверную части. По этому архивы исходных кодов содержат и сервер СУБД PostgreSQL, и консольный клиент (командный интерпретатор SQL) и клиентскую библиотеку. + + + Установка авторизатора и конфигуратора + Для установки конфигуратора необходимо запустить установочный файл и следовать вопросам мастера установки. + Для установки авторизатора необходимо запустить установочный файл и следовать вопросам мастера установки. + + Запуск сервера - При запуске в качестве первого параметра можно указать путь к директории, где расположен файл stargazer.conf. По умолчанию при запуске без параметров система ищет файл в каталоге /etc/stargazer. Например если файл stargazer.conf находится в каталоге /etc/stargazer2, то для запуска системы с чтением настройки из этого каталога следует запустить сервер таким образом: ./stargazer /etc/stargazer2. Для просмотра, работает ли сервер, необходимо выполнить команду: ps –x | grep stargazer. В случае если сервер успешно был запущен и работает то результат команды должен быть примерно таким: - - 4818 ? S< 0:32 ./stargazer /etc/stargazer - 4819 ? S 0:00 stg-exec /etc/stargazer - - Следует отметить что в выводе предыдущей команды должно присутствовать не менее двух строк. То есть, первая строка в данном примере – это процесс сервера, вторая – процесс исполнителя скриптов. Если присутствует только строка с именем stg-exec или не имеется строк вовсе, то сервер не запущен или имеются проблемы в его работе. Для диагностики ошибок при запуске сервера необходимо просмотреть содержимое журнала сервера биллинга (/var/log/stargazer.log) или же системный журнал (обычно /var/log/messages). - Сервер ведет журнал своих действий, куда заносятся все сообщения системы. По умолчанию лог файл находится в каталоге /var/log и имеет название stargazer.log. Если при запуске сервера возникла какая-то ошибка, то необходимо просмотреть файл журнала и исправить ошибку. В случае если серверу не удается записать сообщения в указанный файл, он пытается писать сообщения в syslog, обычно записи syslog находяться в /var/log/messages. - - + При запуске в качестве первого параметра можно указать путь к директории, где расположен файл stargazer.conf. По умолчанию при запуске без параметров система ищет файл в каталоге /etc/stargazer. Например если файл stargazer.conf находится в каталоге /etc/stargazer2, то для запуска системы с чтением настройки из этого каталога следует запустить сервер таким образом: /usr/sbin/stargazer /etc/stargazer2. + При использовании на “боевом” сервере настоятельно рекомендуется использовать init.d-скрипты для запуска, останова, перезапуска и реконфигурирования сервера. Заготовки скриптов для дистрибутивов Ubuntu, Suse и Gentoo входят в стандартную поставку и расположены в каталоге projects/stargazer/inst/linux/etc/init.d. Уважайте себя и других людей, которые, возможно, завтра будут администрировать этот сервер. + Для просмотра, работает ли сервер, необходимо выполнить команду: ps –x | grep stargazer | grep -v grep. В случае если сервер успешно был запущен и работает то результат команды должен быть примерно таким: + +4818 ? S< 0:32 ./stargazer /etc/stargazer +4819 ? S 0:00 stg-exec /etc/stargazer + + Следует отметить что в выводе указанной выше команды должно присутствовать не менее двух строк. То есть, первая строка в данном примере – это процесс сервера, вторая – процесс исполнителя скриптов. Если присутствует только строка с именем stg-exec или не имеется строк вовсе, то сервер не запущен или имеются проблемы в его работе. Для диагностики ошибок при запуске сервера необходимо просмотреть содержимое журнала сервера биллинга (/var/log/stargazer.log) или же системный журнал (обычно /var/log/messages). + Сервер ведет журнал своих действий, куда заносятся все сообщения системы. По умолчанию лог файл находится в каталоге /var/log и имеет название stargazer.log. Если при запуске сервера возникла какая-то ошибка, то необходимо просмотреть файл журнала и исправить ошибку. В случае если серверу не удается записать сообщения в указанный файл, он пытается писать сообщения в syslog, обычно записи syslog находятся в /var/log/messages. + + \ No newline at end of file diff --git a/doc/help/ch4.xml b/doc/help/ch4.xml index d3bb71f0..68c5ebc6 100644 --- a/doc/help/ch4.xml +++ b/doc/help/ch4.xml @@ -1,81 +1,109 @@ - Настройка системы - После инсталляции система должна быть подвергнута процедуре настройки. Обычно следует начинать с настройки сервера. - Основные конфигурационные файлы сервера по умолчанию находятся в каталоге /etc/stargazer. Они включают в себя: основной конфигурационный файл stargazer.conf, файл описания направлений тарификации rules, набор скриптов On* и два каталога — conf-available.d и conf-enabled.d, содержащих конфигурационные файлы отдельных модулей. Для включения какого-либо модуля нужно сделать символическую ссылку на его конфигурационный файл в каталоге conf-enabled.d или прописать его конфигурационную секцию в разделе <Modules> файла stargazer.conf. - - Настройка конфигурационного файла /etc/stargazer/stargazer.conf - Файл имеет текстовый формат, содержащий пары ПАРАМЕТР = ЗНАЧЕНИЕ и секции <ИМЯ_СЕКЦИИ ПАРАМЕТРЫ_СЕКЦИИ>. Комментарии в файле начинаются с символа #. В файле описываются общие параметры, которые являются глобальными значениями для всего сервера биллинга, а также параметры соответствующих модулей. Параметры модулей должны быть заключены в секции: - - <Module [имя модуля(имя файла модуля без mod_ и без .so)]> + Настройка системы + После инсталляции система должна быть подвергнута процедуре настройки. Обычно следует начинать с настройки сервера. + Основные конфигурационные файлы сервера по умолчанию находятся в каталоге /etc/stargazer. Они включают в себя: основной конфигурационный файл stargazer.conf, файл описания направлений тарификации rules, набор скриптов On* и два каталога — conf-available.d и conf-enabled.d, содержащих конфигурационные файлы отдельных модулей. Для включения какого-либо модуля нужно сделать символическую ссылку на его конфигурационный файл в каталоге conf-enabled.d или прописать его конфигурационную секцию в разделе <Modules> файла stargazer.conf. + + Настройка конфигурационного файла /etc/stargazer/stargazer.conf + Файл имеет текстовый формат, содержащий пары ПАРАМЕТР = ЗНАЧЕНИЕ и секции <ИМЯ_СЕКЦИИ ПАРАМЕТРЫ_СЕКЦИИ>. Комментарии в файле начинаются с символа #. В файле описываются общие параметры, которые являются глобальными значениями для всего сервера биллинга, а также параметры соответствующих модулей. Параметры модулей должны быть заключены в секции: + +<Module имя_модуля> +список параметров модуля +</Module> + + Имя модуля представляет собой имя файла этого модуля без префикса mod_ и суффикса .so. Например, секция конфигурации модуля remote_script (имя файла: mod_remote_script.so) может выглядеть так: + +<Module remote_script> +SendPeriod = 15 +SubnetFile = subnets +Password = 123456 +UserParams = Cash Tariff EnabledDirs +Port = 9999 +</Module> + + Описание глобальных параметров параметров: + + Rules – обязательный параметр, указывающий серверу, где находится файл с правилами для подсчета трафика клиентов. Стандартное значение: /etc/stargazer/rules. + LogFile – обязательный параметр, указывающий серверу расположение файла, в который будут заноситься все сообщения системы. Стандартное значение: /var/log/stargazer.log. + PidFile — не обязательный параметр, указывающий серверу где находится файл хранящий PID (идентификатор процесса) дэмона. По умолчанию это /var/run/stargazer.pid. Используется скриптами запуска/останова. + ModulesPath – обязательный параметр, указывающий серверу путь, где находятся подключаемые модули (плагины). Стандартное значение: /usr/lib/stg. + DetailStatWritePeriod – обязательный параметр, указывающий серверу через какое время должна записываться детальная статистика клиента. Стандартное значение: 1/6. Данный параметр может принимать следующие значения: 3 - раз в три часа, 2 - раз в два часа, 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 минут, 1/6 - раз в 10 минут. + StatWritePeriod – не обязательный параметр, указывающий серверу периодичность записи в БД информации о статистике пользователя в минутах. При большом количестве пользователей эту величину стоит увеличить, так как запись в БД может занимать длительное время. По умолчанию имеет значение 10. + DayFee – обязательный параметр, указывающий серверу, в какой день месяца снимать с клиентских счетов сумму абонплаты, в соответствии с тарифными планами клиентов. Может принимать значения от 0 до 31, стандартное значение: 1. Следует помнить, что в некоторых месяцах не более 28 дней. Значение 0 соответствует последнему дню месяца по календарю. + DayResetTraff – обязательный параметр, указывающий серверу в какой день месяца сбрасывать помесячную статистику клиентов и осуществлять переход на новый тариф, если он был изменен у клиента. Может принимать значения от 0 до 31, стандартное значение: 1. Следует помнить, что в некоторых месяцах не более 28 дней. Значение 0 соответствует последнему дню месяца по календарю. + SpreadFee – обязательный параметр, указывающий серверу производить ли «размазанное» снятие абонплаты. Может принимать значения yes и no. При указании значения yes сумма абонплаты указанная в тарифе пользователя будет сниматься не раз в месяц, а каждый день равными долями. Стандартное значение: no. + FreeMbAllowInet – обязательный параметр, указывающий серверу выполнять ли для пользователя скрипт OnConnect, если у него на балансе отсутствуют средства, но остался предоплаченный трафик. Может принимать значения yes и no. Стандартное значение: no. + WriteFreeMbTraffCost – обязательный параметр, определяющий как будет писаться стоимость трафика в детальной статистике. Может принимать значения yes и no, стандартное значение: no. При указании значения yes в детальной статистике пользователя стоимость трафика будет писаться в любом случае, даже если он попадает в FreeMb. При указании значения no доя исчерпания FreeMb в детальной статистике будет указана нулевая стоимость трафика. + DayFeeIsLastDay – обязательный параметр, указывающий серверу когда снимать абонплату. Может принимать значения yes и no, стандартное значение: yes. Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф. Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200, то при переходе на новый тариф со счета пользователя снимется 100, если указано значение yes (абонплата снята до смены тарифа), и 200, если указано значение no (абонплата снята перед сменой тарифа). + ExecutersNum – не обязательный параметр который определяющий сколько скриптом может выполняться одновременно (регулирует количество процессов stg-exec). По умолчанию имеет значение 1. Если выполнение ваших скриптов занимает много времени имеет смысл увеличить это значение. Каждый исполнитель скриптов блокируется на время, пока отработает скрипт. Если исполнителей несколько — они принимают скрипты на выполнение по принципу «кто успел». + StgMsgKey – не обязательный параметр отвечающий за идентификатор очереди сообщений для исполнителя скриптов. По умолчанию данный параметр имеет значение 5555. Рекомендуется не изменять значение параметра без нужды. Его изменение целесообразно лишь в том случае, если в системе требуется запустить более одной копии сервера биллинга. + ShowFeeInCash – не обязательный параметр, определяющий как будет показано состояние счета абонента в авторизаторе и сколько денег ему будет разрешено использовать в текущем месяце. Может принимать значения yes и no, по умолчанию имеет значение yes. При указании no в авторизаторе будет показано состояние счета без учета следующего снятия абонплаты. Так же эти деньги нельзя будет использовать для оплаты трафика в текущем месяце. Пример: у абонента на счету 200 денег при абонплате в 50 денег — в этом случае ему будет показано 150 денег в авторизаторе и он сможет в текущем месяце израсходовать только 150 денег, но снятие абонплаты не уведет его в «минус». + FullFee – не обязательный параметр, указывающий серверу снимать полную абонплату, даже если учетная запись абонента была заморожена (или не существовала) часть учетного периода. Принимает значения yes и no, по умолчанию установлен в no. + MessagesTimeout — не обязательный параметр, устанавливающий время жизни не отправленных сообщений абонентам. Время указывается в сутках. При превышении этого времени сообщение будет удалено, в т. ч. из БД. Если указано значение 0 то не отправленные сообщения никогда не будут удаляться из базы (в частности, это приведет к постепенному росту размера базы, увеличению нагрузки на сервер при авторизации абонентов и к тому что долго отсутствовавший абонент при авторизации получит все пропущенные сообщения). По умолчанию имеет значение 0. + FeeChargeType — не обязательный параметр, регулирующий процесс снятия абонплаты. Может принимать значения 0, 1 и 2, по умолчанию имеет значение 0. При значении 0 абонплата снимается как обычно, при значении 1 абонплата снимается только если баланс пользователя положительный или равен нулю, при значении 2 абонплата снимается только если баланс пользователя больше или равен абонплате. Значение 2 следует использовать с осторожностью, т. к. при этом на безлимитных тарифах абоненты получат услугу бесплатно. + ReconnectOnTariffChange — не обязательный параметр, указывающий серверу выполнить переподключение пользователя при смене тарифа. Может принимать значения yes и no, по умолчанию имеет значение no. При указании значения yes подключенные пользователи будут отключены непосредственно перед сменой тарифа и подключены сразу после нее. Может быть полезно для управления шейпером. + Для именования направлений учета трафика в конфигурационном файле используется секция DirNames: + +<DirNames> +DirName0 = «ИМЯ НАПРАВЛЕНИЯ» +... +DirName9 = ПОСЛЕДНЕЕ_НАПРАВЛЕНИЕ +</DirNames> + + Всего предусмотрено 10 направлений с нумерацией от 0 до 9. Направления, наименование которых состоит из нескольких слов, должны быть заключены в кавычки. Если наименование направления не указано, то система считает что данное направление не используется и не будет производить по нему никаких действий. Пример: DirName0 = Мир, DirName5 = "Локальные игры". Необходимо заметить, что текущая версия системы требует, чтобы имена направлений были указаны в кодировке KOI8-R. В противном случае абоненты не смогут их прочитать в статистике авторизатора, а администраторы — в конфигураторе. + Настройки всех модули (кроме store module), которые необходимо подключить к серверу в момент старта должны быть указанны внутри секции Modules: + +<Modules> +<Module имя_модуля> +список параметров модуля +</Modules> - </Module> - - Описание глобальных параметров параметров: - - Rules – параметр, указывающий серверу, где находится файл с правилами для подсчета трафика клиентов, по умолчанию Rules=/etc/stargazer/rules - LogFile – параметр, указывающий серверу расположение файла, в который будут заноситься все сообщения системы, по умолчанию LogFile=/var/log/stargazer.log - PidFile — параметр, указывающий серверу где находится файл хранящий PID (идентификатор процесса) дэмона, по умолчанию это /var/run/stargazer.pid. Используется скриптами запуска/останова. - ModulesPath – параметр, указывающий серверу путь, где находятся подключаемые модули (плагины). По умолчанию ModulesPath = /usr/lib/stg. - DetailStatWritePeriod – параметр, указывающий серверу через какое время должна записываться детальная статистика клиента, по умолчанию StatTime=1/6. Данный параметр может принимать следующие значения: 3 - раз в три часа, 2 - раз в два часа, 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 минут, 1/6 - раз в 10 минут. - StatWritePeriod – параметр, указывающий серверу периодичность записи в БД информации о статистике пользователя (в минутах). При большом количестве пользователей эту величину стоит увеличить, так как запись в БД может занимать длительное время. По умолчанию StatWritePeriod = 10. - DayFee – параметр, показывающий серверу, в какой день месяца снимать с клиентских счетов сумму абонплаты, в соответствии с тарифными планами клиентов. По умолчанию DayFee=21. Следует помнить, что в некоторых месяцах не более 28 дней. Данный параметр также может принять значение 0; если параметр равен 0, тогда система выполнит действия в последний день текущего месяца; определение последнего дня месяца проводится автоматически. - DayResetTraff – параметр указывает серверу в какой день месяца очищать статистику клиентов; так же в этот день сервер осуществляет переход на новый тариф, если он был изменен у клиента. По умолчанию DayResetTraff = 28. Следует помнить, что в некоторых месяцах не более 28 дней. Данный параметр также может принять значение 0; если параметр равен 0, тогда система выполнит действия в последний день текущего месяца; определение последнего дня месяца проводится автоматически. - SpreadFee – параметр, указывающий серверу, производить ли «размазанное» снятие абонплаты. Т. е. сумма абонплаты указанная в тарифе пользователя будет сниматься не раз в месяц, а каждый день ровными долями. По умолчанию SpreadFee = no. - FreeMbAllowInet – параметр, указывающий серверу выполнять ли для пользователя скрипт OnConnect, если у него на балансе отсутствуют средства, но остался предоплаченный трафик. По умолчанию FreeMbAllowInet = no. - WriteFreeMbTraffCost – параметр, определяющий, что будет писаться в стоимость трафика в детальной статистике. Если у клиента еще есть предоплаченный трафик и WriteFreeMbTraffCost = no, то в детальную статистику будет записываться стоимость со значением = 0. Если у пользователя уже нет предоплаченного трафика и WriteFreeMbTraffCost = no, то в детальную статистику будет записана стоимость трафика. При WriteFreeMbTraffCost = yes стоимость трафика будет записана в любом случае. По умолчанию WriteFreeMbTraffCost = no. - DayFeeIsLastDay – параметр, указывающий серверу, когда абонплата снимается в последний (yes) или первый (no) день учетного периода. Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф. Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200, то при переходе на новый тариф со счета пользователя снимется 100, если DayFeeIsLastDay = yes, и 200, если DayFeeIsLastDay = no. По умолчанию DayFeeIsLastDay = yes. - ExecutersNum – параметр который показывает, сколько процессов исполнителя скриптов может быть запущено одновременно. Количество процессов означает сколько скриптов могут выполнятся одновременно. По умолчанию ExecutersNum = 1. Если выполнение ваших скриптов занимает много времени следует увеличить это значение. Каждый исполнитель скриптов блокируется на время, пока отработает скрипт. Если исполнителей несколько — они принимают скрипты на выполнение по принципу «кто успел». - StgMsgKey – параметр отвечающий за идентификатор очереди сообщений для исполнителя скриптов. По умолчанию данный параметр закомментирован и равен 5555. Рекомендуется не изменять значение параметра без нужды. Его изменение целесообразно лишь в том случае, если в системе требуется запустить более одной копии сервера биллинга. - ShowFeeInCash – показывать на счету и позволять использовать абонплату пользователю. Принимает значения yes и no. Параметр не является обязательным, по умолчанию установлен в yes. - FullFee – снимать полную абонплату, даже если пользователь был заморожен часть учетного периода. Принимает значения yes и no. Параметр не является обязательным, по умолчанию установлен в no. - MessagesTimeout — устанавливает время жизни не отправленных сообщений пользователям. Время указывается в сутках. При превышении этого времени сообщение будет удалено, в т.ч. из БД. Если указан 0 то значения не будут удаляться из базы. По умолчанию 0. - FeeChargeType — регулирует процесс снятия абонплаты. Может принимать значения 0, 1 и 2. При значении 0 абонплата снимается как обычно. При значении 1 абонплата снимается только если баланс пользователя положительный. При значении 2 абонплата снимается только если баланс пользователя больше абонплаты. - ReconnectOnTariffChange — позволяет выполнить переподключение пользователя при смене тарифа. Может принимать значения yes и no. При указании ReconnectOnTariffChange = yes при смене тарифа пользователя если он был подключен произойдет его отключение и подключение заново. Может быть полезно для управления шейпером. - Именования направлений в конфигурационном файле должны быть заключены в теги: - - <DirNames> - DirName0 = "ИМЯ НАПРАВЛЕНИЯ" - ... - DirName9 = ПОСЛЕДНЕЕ_НАПРАВЛЕНИЕ - </DirNames> - - Всего предусмотрено 10 направлений с нумерацией от 0 до 9. Внутри данных тегов указывается названия направлений. Направления, наименование которых состоит из нескольких слов, должны быть заключены в кавычки. Если наименование направления не указано, то система считает что данное направление не используется и не будет производить по нему никаких действий. Пример: DirName0 = Локаль, DirName5 = "Локальные игры". Необходимо заметить, что текущая версия системы требует, чтобы имена направлений были указаны в кодировке KOI8-R. В противном случае пользователи не смогут их прочитать в статистике авторизатора, а администраторы — в конфигураторе. - - Все модули (кроме Store module), которые необходимо подключить к серверу в момент старта должны идти внутри секции: - - <Modules> - <Module [имя модуля]> - ПАРАМЕТРЫ_МОДУЛЯ - </Module> - </Modules> - - Если модуль не имеет настраиваемых параметров, то он все равно должен задаваться в тегах Module … /Module чтобы быть успешно загруженным. Некоторые модули, такие как store module обязательно требуются при старте и без их подключения система не может быть запущена. По умолчанию для указания конфигурации модулей используются отдельные файлы из каталога conf-enabled.d. Для этого используется директива <IncludeFile ПУТЬ_К_ФАЙЛУ></IncludeFile>. Одна директива указана в секции <Modules>, а вторая в корне файла конфигурации (для store module). - - Описание параметров модуля InetAccess (auth_ia) для работы с клиентскими авторизаторами: - - Port – параметр, определяющий на каком порту сервер будет принимать обращения авторизаторов клиентов, по умолчанию UserPort=5555. - UserTimeout – параметр, показывающий серверу, через какое время в секундах клиент будет отключен, если авторизатор не отвечает серверу на запросы. По умолчанию UserTimeout=60. Значение данного параметра должно лежать в диапазоне от 15 до 1200. - UserDelay – время в секундах, через которое сервер опрашивает клиента. Сервер шлет клиенту запрос подтверждения работы авторизатора, а клиент должен прислать ответ что авторизатор находится в рабочем состоянии. Так же это время, через которое у клиента обновляется статистика, по умолчанию UserDelay=5. Следует заметить что значение UserDelay должно быть в 3…10 раз меньше чем значение UserTimeout и данные значения не могут содержать одинаковые таймауты. Значение данного параметра должно лежать в диапазоне от 5 до 600. - - FreeMb – параметр, указывающий серверу что будет передаваться авторизатору клиента от сервера. Данный параметр может принимать следующие значения: - - 0 - количество бесплатных мегабайт в пересчете на цену нулевого направления; - 1 - количество бесплатных мегабайт в пересчете на цену первого направления; - 2 - количество бесплатных мегабайт в пересчете на цену второго направления; - ... - 9 - количество бесплатных мегабайт в пересчете на цену девятого направления; - cash - количество денег на которые клиент может бесплатно работать; - none - ничего не передавать. - - - - - - - - - - - - - +<Module имя_модуля> +список параметров модуля +</Module> +</Modules> + + Если модуль не имеет настраиваемых параметров, то он все равно должен быть указан. Некоторые модули, такие как store module, обязательно требуются при старте и без их подключения система не может быть запущена. По умолчанию для указания конфигурации модулей используются отдельные файлы из каталога conf-enabled.d. Для этого используется директива <IncludeFile ПУТЬ_К_ФАЙЛУ></IncludeFile>. Одна директива указана в секции Modules, а вторая в корне файла конфигурации (для store module). + + Описание параметров модуля InetAccess (auth_ia) для работы с авторизаторами абонентов: + + Port – обязательный параметр, определяющий на каком порту сервер будет принимать обращения авторизаторов абонентов. Стандартное значение: 5555. + UserTimeout – обязательный параметр, указывающий серверу, через какое время в секундах абонент будет отключен если авторизатор не отвечает серверу на запросы. Может принимать значения от 15 до 1200, стандартное значение: 65. + UserDelay – обязательный параметр, указывающий серверу время в секундах, через которое происходит опрос авторизатора абонента. Сервер шлет абоненту запрос подтверждения работы авторизатора, а авторизатор абонента должен прислать ответ что он находится в рабочем состоянии. Так же это время, через которое в авторизаторе обновляется статистика. Может принимать значения от 5 до 600, стандартное значение: 60. Следует заметить что значение UserDelay должно быть меньше чем значение UserTimeout. + + FreeMb – обязательный параметр, определяющий в каком виде абоненту будет показано значение FreeMb. Данный параметр может принимать следующие значения: + + 0 - количество бесплатных мегабайт в пересчете на цену нулевого направления; + 1 - количество бесплатных мегабайт в пересчете на цену первого направления; + 2 - количество бесплатных мегабайт в пересчете на цену второго направления; + ... + 9 - количество бесплатных мегабайт в пересчете на цену девятого направления; + cash - количество денег на которые клиент может бесплатно работать; + none - ничего не передавать. + + + + Обмен данными авторизатора с сервером осуществляется по протоколу UDP. Можно указать несколько модулей авторизатора auth_ia для авторизации с разных портов. + + + Модуль авторизации auth_ao. + Модуль параметров не имеет. Используется для поддержки режима Always Online у абонентов. Без включения этого модуля установка параметра alwaysOnline для абонента эффекта иметь не будет. В режиме Always Online абонент находится в авторизованном состоянии все время, независимо от использования авторизатора. Тем не менее он может быть отключен по причине отсутствия средств на счету, заблокирован администратором или «заморожен». В этом режиме так же возможно использование авторизатора за одним исключением — абонент не может сам вызвать «отключение». + + + Описание параметров модуля SGConfig (conf_sg) для работы с конфигуратором: + + Port – обязательный параметр, определяющий, на каком порту сервер будет принимать обращения конфигураторов. Стандартное значение: 5555. + + Обмен конфигуратора с сервером осуществляется по протоколу TCP. Можно указать несколько модулей конфигуратора с указанием разных портов. + + + Описание параметров модуля файловой БД: + + WorkDir – обязательный параметр, указывающий серверу где находится рабочая директория с файлами БД. Стандартное значение: /var/stargazer. + ConfOwner, ConfGroup, ConfMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы конфигурации (conf) абонента соответственно. ConfOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. ConfGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. ConfMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640. + StatOwner, StatGroup, StatMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы статистики (stat) абонента соответственно. StatOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. StatGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. StatMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640. + UserLogOwner, UserLogGroup, UserLogMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы журналов (log) абонента соответственно. UserLogOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. UserLogGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. UserLogMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640. + + При создании каталогов (например для записи детальной статистики) используются те-же права, но с добавлением x-бита для всех ненулевых полей. Например: для 640 будут права 750, а для 644 будут 755. Для записи детальной статистики используются параметры StatOwner, StatGroup и StatMode. Для записи сообщений используются параметры ConfOwner, ConfGroup и ConfMode. + + + \ No newline at end of file -- 2.44.2