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

Как исправить контексты и метки SElinux после восстановления из резервной копии

У меня есть сервер под управлением Centos7 / XFS с SElinux, на котором возникла проблема (не связанная с SElinux), которую нужно было восстановить из моментального снимка, сделанного несколько недель назад. Этот сервер также каждую ночь делает резервную копию rsync в выделенном внешнем контейнере Docker.

Я восстановил моментальный снимок, а затем восстановил ключевые файлы / базы данных из ночной резервной копии, так как я не знал, в чем проблема. К сожалению, контексты / метки восстановленных файлов теперь полностью неверны и показывают метки контейнеров Docker (восстановленный сервер не запустить Docker). Примеры:

В / корень:

[root@mail ~]# ls -alZ
dr-xr-x---. root root system_u:object_r:container_file_t:s0:c18,c703 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0      ..
-rw-------. root root system_u:object_r:container_file_t:s0:c18,c703 anaconda-ks.cfg
drwxr-xr-x. root root system_u:object_r:container_file_t:s0:c18,c703 archive
drwxr-xr-x. root root system_u:object_r:container_file_t:s0:c18,c703 bak
etc . . . 

и файлы / etc также показывают маркировку контейнера:

[root@mail audit]# ls -alZ
drwxr-x---. root root system_u:object_r:container_file_t:s0:c18,c703 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0       ..
-rw-r-----. root root system_u:object_r:container_file_t:s0:c18,c703 auditd.conf
-rw-r-----. root root system_u:object_r:container_file_t:s0:c18,c703 auditd.conf.bak
-rw-r-----. root root system_u:object_r:container_file_t:s0:c18,c703 audit.rules
-rw-r-----. root root system_u:object_r:container_file_t:s0:c18,c703 audit-stop.rules
drwxr-x---. root root system_u:object_r:container_file_t:s0:c18,c703 rules.d
etc . . . 

Я бежал touch .autorelabel и перезагрузился, fixfiles restore, fixfiles relabel и restorecon и даже переустановил целевую политику - все без толку. Сервер отлично работает с Permissive, но я хотел бы снова запустить SElinux. Сервер работал в совершенстве с включенным SElinux до несвязанной проблемы и последующего восстановления.

Как я могу восстановить предыдущие (по умолчанию) контексты и метки SElinux для всей файловой системы без ручного сканирования каталогов и исправления их вручную?

Итак, после хорошего ночного сна, еще раз покопавшись на ServerFault и страницах руководства, я нашел ответ:

`restorecon -vRF '

Не хватало опции F (сила) - теперь все работает хорошо.