Краткая заметка о SElinux в Centos8

Как обычно, написал много текста и забыл переключить раскладку перед сохранением.. В следствие чего пишу по новой.. Итак, всем известно что в центоси конфиг местного “цербера” ака selinux это /etc/sysconfig/selinux. И вот я однажды на этом споткнулся.. Нет смысла расписывать или писать очередной крутой мануал о том как же отключить сего цербера чтоб не мешался грамотным людям измываться над целевой системой.. На просторах интернета мануалов и без того полно, а всего то:

  • для временного (до ребута) отключения:
# setenforce 0

или

# setenforce Permissive
  • а для полного:
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
#init 6
  • ну и чтоб проверить:
#sestatus
SELinux status:                 disabled

Вот, на этом всё. Обычно. Но не у меня. Я же люблю приключения )).

Поставить вдруг вздумалось центось 8. Ну пора бы уже, наверное, переходить на 8-ку. ну там разное, и всё такое, вобщем софт посвежее.. и попросили отключить тот самый, пресловутый selinux. “Ха, делов то” подумал я… и немножечко призадумался.. Поправил конфиг, перезапустил машинку и проверяю:

#sestatus

и получаю в ответ:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

и немножечко призадумался.. что-то не так… проверил ещё разок, и ещё, но уже “умнее”. И получил закономерный ответ:

# cat /etc/sysconfig/selinux ; sestatus; setenforce 0; sestatus
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=minimum

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

Удивился я не так чтобы сильно, но таки полез гуглить.. и нашел 100 и еще 500 бложиков где пишут как отключить селинукс.. и везде вроде то же самое. Спросил у товарищей, и, ткнули меня носом.. конфиг то селинукса не /etc/sysconfig/selinux а /etc/selinux/config. Так что, правильным способом отключить селинукс будет:

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# reboot

И после перезугрузки получим:

# sestatus
SELinux status:                 disabled

Вот, как-то так.

А если совсем не в терпёж, то можно и удалить селинукс:

#dnf remove selinux*

Хотя это категорически НЕ рекомендуется!. Тем более, что он отключается легко и просто.