RHEL SELinux: /etc/sysconfig/selinux ou /etc/selinux/config?

RHEL SELinux: /etc/sysconfig/selinux ou /etc/selinux/config?

Estou executando o CentOS Linux versão 7.5.1804 (Core) e me deparei com a tarefa usual de definir SELinux para Permissive. Mas então minhas duas fontes me deram dois locais diferentes onde a configuração deveria ser definida:

  1. /etc/sysconfig/selinux

gato /etc/sysconfig/selinux

# 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=permissive
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
  1. /etc/selinux/config

gato /etc/selinux/config

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

Eu li os fóruns relevantes do RedHat, mas ninguém parece particularmente interessado em um ou outro. Leia tambémSelinux - centos - faltando /etc/selinux/config, ambas as soluções existem para uma resposta.

Qual devo usar para minha versão atual?

Qual devo usar daqui para frente para versões mais recentes?

ATUALIZAÇÃO: Eles não estão vinculados simbolicamente em meu sistema. Em gordura, são dois arquivos bastante diferentes:

ls -la /etc/selinux/ | grep config
-rw-r--r--.  1 root root  550 Jan 14 15:55 config
ls -la /etc/sysconfig/ | grep selinux
-rw-r--r--.  1 root root  543 Jan 10 14:12 selinux

Responder1

De um sistema CentOS 7 que tenho em mãos, mas CentOS 6 e Fedora 31 são iguais

lrwxrwxrwx. 1 root root   17 Oct 31  2018 selinux -> ../selinux/config

Parece que são o mesmo arquivo. Use pessoalmente /etc/selinx/config devido à memória muscular.


mas no meu sistema são arquivos diferentes, o tamanho é diferente, o tempo de alteração é diferente

Então considere que seu sistema está ‘quebrado’. Isso é fácil de testar, definido como permissivo em um e obrigatório no outro. Reinício ...

Responder2

O arquivo de configuração padrão do selinux está em /etc/selinux/configper man 8 selinux. No Apêndice D doGuia de implantação do RHEL 6(não foi possível encontrar no documento RHEL 7), eles mencionam que /etc/sysconfigé um link simbólico para /etc/selinux/config:

O arquivo /etc/sysconfig/selinux contém as opções básicas de configuração do SELinux. É um link simbólico para /etc/selinux/config

Você saberá que é um link simbólico quando vir a ls -lasaída porque o primeiro campo será l, para link, e ugoterá rwx:

[root@test sysconfig]# ls -lah selinux
lrwxrwxrwx. 1 root root 19 Nov 24 00:58 selinux -> /etc/selinux/config

Antes de saber que se tratava de um link simbólico, acidentalmente sobrescrevi o arquivo sedporque, por padrão, sednão segue links simbólicos:

[root@test sysconfig]# ls -lah selinux
lrwxrwxrwx. 1 root root 17 Jul 24 23:16 selinux -> ../selinux/config
[root@test sysconfig]# grep '^SELINUX=' selinux
SELINUX=enforcing
[root@test sysconfig]# sed -i 's/SELINUX=enforcing/SELINUX=permissive/' selinux
[root@test sysconfig]# ls -lah selinux
-rw-r--r--. 1 root root 544 Nov 24 00:50 selinux

Se você alguma vez se encontrar nessa situação, é uma solução fácil restaurar o link simbólico:

[root@test sysconfig]# rm /etc/sysconfig/selinux
rm: remove regular file ‘/etc/sysconfig/selinux’? y
[root@test sysconfig]# ln -s /etc/selinux/config selinux
[root@test sysconfig]# ls -lah selinux
lrwxrwxrwx. 1 root root 19 Nov 24 00:52 selinux -> /etc/selinux/config

Pessoalmente, estou modificando apenas /etc/selinux/configum para não cometer outro erro com o link simbólico, mas dois porque alguns arquivos de configuração nesse diretório estão se tornando obsoletos em versões mais recentes; por exemplo,nfsem RHEL 8.

informação relacionada