Contexto do arquivo SELinux, restorecon não altera o contexto do 'usuário'

4

Usando matchpathcon em um arquivo (por exemplo, /usr/lib64/gconv/gconv-modules.cache), recebo:

/usr/lib64/gconv/gconv-modules.cache  system_u:object_r:lib_t:s0

No entanto:

# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:lib_t:s0

Portanto, parece que o arquivo NÃO possui o contexto adequado (parte do usuário não correspondente). No entanto, ao executar restorecon -v , o arquivo não será alterado.

Eu posso fazer isso:

# chcon -t httpd_sys_content_t /usr/lib64/gconv/gconv-modules.cache
# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0
# restorecon -v /usr/lib64/gconv/gconv-modules.cache
unconfined_u:object_r:httpd_sys_content_t:s0 -> unconfined_t:object_r:lib_t:s0

Portanto, restorecon parece atualizar apenas o SELinux type de um arquivo, mas não o contexto user . Isso é um bug ou há uma explicação para esse comportamento? Eu estou pensando que pode ser um bug porque a documentação ( link ) mostra uma restauração em um arquivo com um contexto user incompatível e é alterado de unconfined_u->system_u conforme o esperado.

OS: RedHat 7.3
SELinux: 3.13.1-102.el7_3.16

    
por LJKims 11.07.2017 / 20:20

1 resposta

2

Depois de abrir um caso de suporte, vejo que fui enganado pela documentação da Red Hat e deveria ter lido a página de manual mais de perto:

# man restorecon
...
If  a  file  object  does not have a context, restorecon will write the
default context to the file object's extended  attributes.  **If  a  file
object  has  a context, restorecon will only modify the type portion of
the security context.  The -F option will force a  replacement  of  the
entire context.**
...
    
por 17.07.2017 / 14:25

Tags