Я использую RHEL 6.1, и я хотел бы настроить SELinux для авторизации httpd для чтения всех файлов в некоторых папках (моя цель - сделать файлы журналов доступными через Интернет).
Мне нужно решение, которое можно было бы сделать постоянным.
Заранее спасибо.
Вы можете настроить правило, разрешающее httpd_t
чтобы прочитать тип файла, которым помечены ваши файлы журналов.
Например, если я хочу httpd_t
уметь читать your_log_file_type_t
, вы создаете такой модуль политики (из глубины моей головы). Назовите его apache_read_logs.te и поместите в пустой каталог:
policy_module(apache_read_logs, 1.0)
type httpd_t;
type your_log_file_type_t;
type your_log_dir_type_t;
allow httpd_t your_log_dir_type_t:dir list_dir_perms;
read_files_pattern(httpd_t, your_log_dir_type, your_log_file_type)
read_lnk_files_pattern(httpd_t, your_log_dir_type, your_log_file_type)
Это позволяет httpd_t
читать файлы с пометкой your_log_file_type_t
и выполните поиск в каталогах с пометкой your_log_dir_type_t
. Для краткости используются макросы. Вы можете увидеть, как выглядят макросы, загрузив и изучив архив справочной политики.
Затем из каталога, в котором вы создали файл, вы запускаете как root:
# make -f /usr/share/selinux/devel/Makefile
# /usr/sbin/semodule -i apache_read_logs.pp
Предполагается, что у вас установлены selinux-policy-devel и policycoreutils. Сначала проверьте это на неважной машине! Я написал это вслепую и сам не тестировал!