Control++:Blacklist/Whitelist: различия между версиями
Нет описания правки |
мНет описания правки |
||
(не показано 6 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
== Постановка задачи == | == Постановка задачи == | ||
# Имеется текстовый файл <code>/some_path/some_blacklist.txt</code>, называемый <i><b>чёрным списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы | # Имеется текстовый файл <code>/some_path/some_blacklist.txt</code>, называемый <i><b>чёрным списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы. По единой команде должно производиться запрещение запуска (исполнения) всех файлов чёрного списка (по умолчанию — для всех пользователей). | ||
# Имеется текстовый файл <code>/some_path/some_whitelist.txt</code>, называемый <i><b>белым списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы | # Имеется текстовый файл <code>/some_path/some_whitelist.txt</code>, называемый <i><b>белым списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы. По единой команде должно производиться запрещение запуска (исполнения) всех файлов системы, кроме файлов белого списка, а права на запуск (исполнение) файлов белого списка должны остаться неизменными (по умолчанию, может быть изменено настройками). | ||
== Решение поставленной задачи == | == Решение поставленной задачи == | ||
Строка 10: | Строка 10: | ||
=== Правка основного файла настройки control++ === | === Правка основного файла настройки control++ === | ||
Добавить в файл настройки <code>/etc/control++/control++.conf</code> секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название <i>some_mode_name</i>), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>): | Добавить в файл настройки <code>/etc/control++/control++.conf</code> секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название <i>some_mode_name</i>), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>): | ||
:<source> | :<source lang="text"> | ||
[some_mode_name] | [some_mode_name] | ||
permissions = some_perm_mode_name | permissions = some_perm_mode_name | ||
Строка 17: | Строка 17: | ||
=== Создание/правка файла настройки режима прав на файлы === | === Создание/правка файла настройки режима прав на файлы === | ||
Поместить в каталог <code>/etc/control++/samples/permissions</code> файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>, его абсолютный путь при этом будет равен <code>/etc/control++/samples/permissions/some_perm_mode_name</code>) и задать ему следующее содержимое (минимальный вариант): | Поместить в каталог <code>/etc/control++/samples/permissions</code> файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>, его абсолютный путь при этом будет равен <code>/etc/control++/samples/permissions/some_perm_mode_name</code>) и задать ему следующее содержимое (минимальный вариант): | ||
* | * для задания применения чёрного списка: | ||
:<source> | *:<source lang="text"> | ||
[blacklist] | [blacklist] | ||
path = /some_path/some_blacklist.txt | path = /some_path/some_blacklist.txt | ||
</source> | </source> | ||
* | * для задания применения белого списка: | ||
:<source> | *:<source lang="text"> | ||
[whitelist] | [whitelist] | ||
path = /some_path/some_whitelist.txt | path = /some_path/some_whitelist.txt | ||
</source> | </source> | ||
Возможно задание следующих дополнительных параметров: | Возможно задание следующих дополнительных параметров: | ||
* <code>base_dir</code> | * <code>base_dir</code> — определяет каталог, рассматриваемый при применении данного режима прав как каталог верхнего уровня; | ||
* <code>excluded_paths</code> | * <code>excluded_paths</code> — определяет набор каталогов, содержимое которых (в том числе содержимое вложенных каталогов) не будет затронуто применением прав, описанных данной секцией (с учётом <i>base_dir</i>, т.е. если требуется исключить каталог <code>/usr/lib</code>, а <i>base_dir</i> равен <code>/usr</code>, то <i>excluded_paths</i> следует присвоить значение <code>lib</code>); | ||
* <code>mode</code> — режим в формате <code>rwxrwxrwx</code>, применяемый к файлам, перечисленным в чёрном/белом списке (по умолчанию для белого списка <code>*********</code>, для чёрного списка <code>**-**-**-</code>, где символ <code>*</code> означает сохранение текущего значения данного бита прав); | |||
* <code>mode</code> | * <code>mode_for_dirs</code> — определяет режим для каталогов, затрагиваемых применением прав, описанных данной секцией (самих каталогов -- обычные файлы и ссылки, вложенные в эти каталоги не затрагиваются данным параметром). Данный параметр предусмотрен для обеспечения возможности оставить каталоги пригодными для навигации по ним (режим <code>r*xr*xr*x</code>). По умолчанию режим для каталогов определяется так же как для обычных файлов; | ||
* <code>owner</code> — название учётной записи владельца файла, назначаемого для файлов, перечисленных в чёрном/белом списке (по умолчанию владелец перечисленных файлов при применении чёрного/белого списка не изменяется); | |||
* <code>group</code> — название группы, к которой относится файл, назначаемой для файлов, перечисленных в чёрном/белом списке (по умолчанию группа для перечисленных файлов при применении чёрного/белого списка не изменяется). | |||
Пример описания режима прав с применением дополнительных параметров: | Пример описания режима прав с применением дополнительных параметров: | ||
:<source> | :<source lang="text"> | ||
[whitelist] | [whitelist] | ||
path = /some_path/some_whitelist.txt | path = /some_path/some_whitelist.txt | ||
base_dir = "/usr" | base_dir = "/usr" | ||
excluded_paths = "lib", "local/lib", | excluded_paths = "lib", "local/lib", | ||
mode = *-x*-x*-x | |||
mode_for_dirs = ********* | mode_for_dirs = ********* | ||
owner = some_user | |||
group = some_group | |||
</source> | </source> | ||
Текущая версия от 17:08, 20 апреля 2022
control++ может быть использован для применения чёрных/белых списков файлов.
Постановка задачи
- Имеется текстовый файл
/some_path/some_blacklist.txt
, называемый чёрным списком, каждая строка которого представляет собой абсолютный путь к файлу данной системы. По единой команде должно производиться запрещение запуска (исполнения) всех файлов чёрного списка (по умолчанию — для всех пользователей). - Имеется текстовый файл
/some_path/some_whitelist.txt
, называемый белым списком, каждая строка которого представляет собой абсолютный путь к файлу данной системы. По единой команде должно производиться запрещение запуска (исполнения) всех файлов системы, кроме файлов белого списка, а права на запуск (исполнение) файлов белого списка должны остаться неизменными (по умолчанию, может быть изменено настройками).
Решение поставленной задачи
Правка основного файла настройки control++
Добавить в файл настройки /etc/control++/control++.conf
секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название some_mode_name), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название some_perm_mode_name):
[some_mode_name] permissions = some_perm_mode_name
Создание/правка файла настройки режима прав на файлы
Поместить в каталог /etc/control++/samples/permissions
файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название some_perm_mode_name, его абсолютный путь при этом будет равен /etc/control++/samples/permissions/some_perm_mode_name
) и задать ему следующее содержимое (минимальный вариант):
- для задания применения чёрного списка:
[blacklist] path = /some_path/some_blacklist.txt
- для задания применения белого списка:
[whitelist] path = /some_path/some_whitelist.txt
Возможно задание следующих дополнительных параметров:
base_dir
— определяет каталог, рассматриваемый при применении данного режима прав как каталог верхнего уровня;excluded_paths
— определяет набор каталогов, содержимое которых (в том числе содержимое вложенных каталогов) не будет затронуто применением прав, описанных данной секцией (с учётом base_dir, т.е. если требуется исключить каталог/usr/lib
, а base_dir равен/usr
, то excluded_paths следует присвоить значениеlib
);mode
— режим в форматеrwxrwxrwx
, применяемый к файлам, перечисленным в чёрном/белом списке (по умолчанию для белого списка*********
, для чёрного списка**-**-**-
, где символ*
означает сохранение текущего значения данного бита прав);mode_for_dirs
— определяет режим для каталогов, затрагиваемых применением прав, описанных данной секцией (самих каталогов -- обычные файлы и ссылки, вложенные в эти каталоги не затрагиваются данным параметром). Данный параметр предусмотрен для обеспечения возможности оставить каталоги пригодными для навигации по ним (режимr*xr*xr*x
). По умолчанию режим для каталогов определяется так же как для обычных файлов;owner
— название учётной записи владельца файла, назначаемого для файлов, перечисленных в чёрном/белом списке (по умолчанию владелец перечисленных файлов при применении чёрного/белого списка не изменяется);group
— название группы, к которой относится файл, назначаемой для файлов, перечисленных в чёрном/белом списке (по умолчанию группа для перечисленных файлов при применении чёрного/белого списка не изменяется).
Пример описания режима прав с применением дополнительных параметров:
[whitelist] path = /some_path/some_whitelist.txt base_dir = "/usr" excluded_paths = "lib", "local/lib", mode = *-x*-x*-x mode_for_dirs = ********* owner = some_user group = some_group
Задание значения любого из дополнительных параметров может отсутствовать/присутствовать в описании прав независимо от присутствия/отсутствия задания значений других дополнительных параметров.