Назад | Перейти на главную страницу

Разрешить rsync писать в httpd_user_content_t

У нас есть rsyncd, работающий как демон на наших интерфейсных веб-серверах. Мы отправляем обновления веб-приложений через rsync.

Мы стремимся снизить уровень шума в auditd и исправить некоторые проблемы с SELinux (чтобы однажды мы могли правильно его включить).

На данный момент при запуске rsync мы получаем следующие сообщения:

type=AVC msg=audit(1580772908.749:172148): avc:  denied  { write } for  pid=33806 comm="rsync" path="/public_html/docs/cg/html/1/.file.html.o9GVX9" dev="sda3" ino=37341 scontext=system_u:system_r:rsync_t:s0-s0:c0.c1023 tcontext=system_u:object_r:httpd_user_content_t:s0 tclass=file permissive=1

Как я могу разрешить rsync записывать в эти файлы с помощью SELinux?

У вас есть разные варианты; от более простого (но более грубого) к более сложному (но более конкретному):

  • setsebool -P rsync_full_access 1: предоставить rsync полный доступ к файловой системе;
  • измени свой httpd контекст файла для public_content_rw_t;
  • напишите конкретный патч политики selinux через cat audit.log | audit2allow.

Наконец, вы также можете установить rsyncd в разрешительном режиме выдача semanage permissive -a rsync_t, но я настоятельно рекомендую избегать этого (не в последнюю очередь, потому что это не избавляет от журналов аудита selinux).

Я бы использовал первое решение, поскольку изменение логического значения selinux является наименее инвазивным, но более очевидным и немедленным изменением.