Control++: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
<b>Control++</b> - консольная программа для настройки GNU+Linux системы, позволяющая переключать режимы, каждый из которых определяется своим файлом ulimits, а также своим набором описаний прав на файлы системы. Написана на C++. Распространяется по лицензии GPLv3.0.
<b>Control++</b> - консольная программа для настройки GNU+Linux системы, позволяющая переключать режимы, каждый из которых определяется своим файлом ulimits, а также своим набором описаний прав на файлы системы и запускаемым сценарием оболочки. Написана на C++. Распространяется по лицензии GPLv3.0.


== Принцип работы ==
== Принцип работы ==


Параметры <b>control++</b> определяются файлом ini-формата <code>/etc/control++/control++.conf</code>. Данный ini-файл состоит из секции <i>main</i> и секций описания каждого из режимов. Секция <i>main</i> включает определение текущего режима (<i>current_mode</i>), списка доступных режимов (<i>modes</i>), списка вариантов ограничений (<i>ulimits</i>) и списка вариантов наборов прав на файлы (<i>permissions</i>). Каждая из секций режимов состоит из определения варианта ограничений (<i>ulimits</i>) и варианта набора прав (<i>permissions</i>) данного режима.
Параметры <b>control++</b> определяются файлом ini-формата <code>/etc/control++/control++.conf</code>. Данный ini-файл состоит из секции <i>main</i> и секций описания каждого из режимов. Секция <i>main</i> включает определение текущего режима (<i>current_mode</i>), списка доступных режимов (<i>modes</i>), списка вариантов ограничений (<i>ulimits</i>) и списка вариантов наборов прав на файлы (<i>permissions</i>). Каждая из секций режимов может состоять из определения варианта ограничений (<i>ulimits</i>), варианта набора прав (<i>permissions</i>) и запускаемого сценария оболочки для данного режима.


Файлы ulimits для каждого режима находятся в <code>/etc/control++/ulimits/название_режима</code>.
Файлы ulimits для каждого варианта ограничений находятся в <code>/etc/control++/ulimits/название_варианта</code>.


Файлы с описанием набора прав на файлы для каждого режима являются файлами ini-формата и находятся в <code>/etc/control++/permissions/название_режима</code>.
Файлы с описанием набора прав на файлы для каждого варианта прав являются файлами ini-формата и находятся в <code>/etc/control++/permissions/название_варианта</code>.
 
Файлы сценариев оболочки находятся в <code>/etc/control++/scripts/название_варианта</code>.


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


При запуске программы от имени <i>su</i> для переключения режима, например <code>control++ set some_mode</code>, программа попытается скопировать файл <code>/etc/control++/ulimits/some_mode</code> в каталог <code>/etc/security/limits.d/</code>, а также попытается применить права на файлы в соответствии с описанием в <code>/etc/control++/permissions/some_mode</code>. В случае невозможности осуществления какой-либо из операций будет выведено сообщение об ошибке.
При запуске программы от имени <i>su</i> для переключения режима, например <code>control++ set some_mode</code>, которому соответствует вариант ограничений ulims_x, вариант прав perm_y и сценарий sh_z, программа попытается скопировать файл <code>/etc/control++/ulimits/ulims_x</code> в каталог <code>/etc/security/limits.d/</code>, попытается применить права на файлы в соответствии с описанием в <code>/etc/control++/permissions/perm_y</code> и запустить сценарий <code>/etc/control++/permissions/sh_z</code>. В случае невозможности осуществления какой-либо из операций будет выведено сообщение об ошибке. Если какой-то из параметров не указан (например название сценария оболочки) то соответствующая операция не будет выполняться.


== Использование ==
== Использование ==
Строка 32: Строка 34:
Отображение справочной информации:
Отображение справочной информации:
<code>control++ help</code>
<code>control++ help</code>
== Ссылки ==
[http://git.altlinux.org/people/alexey/packages/?p=controlplusplus.git;a=summary Проект на git.altlinux.org]


[[Категория:Безопасность]]
[[Категория:Безопасность]]
[[Категория:Admin]]
[[Категория:Admin]]

Версия от 19:50, 26 января 2018

Control++ - консольная программа для настройки GNU+Linux системы, позволяющая переключать режимы, каждый из которых определяется своим файлом ulimits, а также своим набором описаний прав на файлы системы и запускаемым сценарием оболочки. Написана на C++. Распространяется по лицензии GPLv3.0.

Принцип работы

Параметры control++ определяются файлом ini-формата /etc/control++/control++.conf. Данный ini-файл состоит из секции main и секций описания каждого из режимов. Секция main включает определение текущего режима (current_mode), списка доступных режимов (modes), списка вариантов ограничений (ulimits) и списка вариантов наборов прав на файлы (permissions). Каждая из секций режимов может состоять из определения варианта ограничений (ulimits), варианта набора прав (permissions) и запускаемого сценария оболочки для данного режима.

Файлы ulimits для каждого варианта ограничений находятся в /etc/control++/ulimits/название_варианта.

Файлы с описанием набора прав на файлы для каждого варианта прав являются файлами ini-формата и находятся в /etc/control++/permissions/название_варианта.

Файлы сценариев оболочки находятся в /etc/control++/scripts/название_варианта.

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

При запуске программы от имени su для переключения режима, например control++ set some_mode, которому соответствует вариант ограничений ulims_x, вариант прав perm_y и сценарий sh_z, программа попытается скопировать файл /etc/control++/ulimits/ulims_x в каталог /etc/security/limits.d/, попытается применить права на файлы в соответствии с описанием в /etc/control++/permissions/perm_y и запустить сценарий /etc/control++/permissions/sh_z. В случае невозможности осуществления какой-либо из операций будет выведено сообщение об ошибке. Если какой-то из параметров не указан (например название сценария оболочки) то соответствующая операция не будет выполняться.

Использование

Переключение\установка режима: control++ <название_режима>

Установка режима по-умолчанию: control++ reset

Отображение списка доступных режимов: control++ list

Отображение текущего режима: control++ status

Отображение содержимого главного файла настройки: control++ conf

Отображение справочной информации: control++ help

Ссылки

Проект на git.altlinux.org