вывод, для которого Perl является /bin/perl вместо /usr/bin/perl

Вы правы, не желая отключать SELinux для домена rsync_t. К сожалению, несмотря на то, что возможности настройки реализации SELinux для rsync довольно обширны, существуют пограничные случаи, когда установка rsync_export_all_roлогического значения по-прежнему не разрешает демону rsync доступ к определенным файлам. Существует одна запись Bugzilla , которая очень похожа на ваши проблемы. Приведенное там предложение состоит в том, чтобы использовать rsync_full_accessдля преодоления проблемы, хотя и с нарушением безопасности (все же лучше, чем semanage permissive -a rsync_t, хотя ).

Создание пользовательского модуля политики

Итак, чтобы ответить на ваш вопрос, если вы хотите использовать более безопасный вариантrsync_export_all_roи иметь возможность разрешить демону rsync доступ к файлам/каталогам «пограничного случая», вам нужно создать свой собственный модуль политики..

Это достигается за счет того, что демон rsync выполняет свою работу в разрешительном режиме, перехватывая отказы AVC по мере их продвижения, а затем преобразовывая отказы AVC в политику, например:

# put SELinux in permissive mode
setenforce 0

# --- do your rsync stuff ---

# get related AVC denials
# I'm using 'recent' here, depending on the rsync run time please adjust accordingly
ausearch -m avc -ts recent --subject rsync_t

# go through the output. If you're satisfied, create the module
ausearch -m avc -ts recent --subject rsync_t | audit2allow -m roaima-rsync-custom-1 > roaima-rsync-custom-1.te
checkmodule -M -m -o roaima-rsync-custom-1.mod roaima-rsync-custom-1.te
semodule_package -o roaima-rsync-custom-1.pp -m roaima-rsync-custom-1.mod

# load the policy module
semodule -i roaima-rsync-custom-1.pp

# disable permissive mode
setenforce 1

# --- do your rsync stuff again --

Перехват отказов AVC, которые не проверены ("dontaudit")

Если по какой-то причине файлы «пограничного случая» по-прежнему недоступны, а команда ausearchне дает результатов, возможно, вы сталкиваетесь с правилом «не проводить аудит».

Чтобы перестроить политику SELinux, игнорирующую все правила «dontaudit» -, запустите semodule -DB. Опция -Dотключает правила «dontaudit»; опция -Bперестраивает политику.

Затем попробуйте инициировать события журнала аудита. Если это так, захватите их, как показано выше, создайте модуль SELinux,а затем снова -включите правила «dontaudit», выполнив:semodule -B.

Чтобы просмотреть полный список правил «dontaudit», введите команду sesearch --dontaudit. Сузьте поиск, используя параметр домена -sи команду grep. Например :sesearch --dontaudit -s rsync_t.

0
21.09.2021, 23:08
1 ответ

На сервере CentOS 7.9 /bin — это символическая ссылка на /usr/bin. Должно быть то же самое в системе REL. вывод which perlзависит от порядка, установленного в вашем $PATH.

0
22.09.2021, 16:49

Теги

Похожие вопросы