SELinux: restorecon não mudará o contexto para httpd_sys_content_t

0

Eu preciso usar o Puppeteer em um sistema Centos 7.4.1708, mas quando eu tenho o SELinux configurado como Enforcing estou recebendo erros de AVC.

Se eu executar sudo cat /var/log/messages , obtenho:

SELinux is preventing /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome from search access on the directory /sys/fs/cgroup/cpuset.

*****  Plugin restorecon_source (99.5 confidence) suggests   *****************

If you want to fix the label.
/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome default label should be httpd_sys_content_t.    
Then you can run restorecon.    
Do    
# /sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome

Esta mesma mensagem aparece talvez 6 ou 7 vezes.

Quando eu tento fazer o acima, porém, restorecon não irá definir o contexto do arquivo.

Definir política (como root):% semanage fcontext -a -t httpd_sys_content_t '/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome'

Verificar política:
matchpathcon /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
Shows: /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome system_u:object_r:httpd_sys_content_t:s0

Isso parece bom, mas depois ...
Definir novo contexto para o arquivo:
/sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome

restorecon não funciona. Eu não recebo nenhum erro mesmo se eu usar -vv . Eu também tentei forçar restorecon com -F , mas isso não funciona.

Aqui está o contexto atual dos arquivos:
ls -Z /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome Shows: -rwxrwxrwx. root root system_u:object_r:nfs_t:s0 /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome

O contexto atual é nfs_t porque eu uso pastas sincronizadas com nfs na caixa virtual do Vagrant. Não consigo mudar para o smb porque ele não é sincronizado nos dois modos usando um host do Windows.

Alguma ideia de como posso corrigir este problema? Eu estou nisso há quase dois dias.

Nota: Se eu definir o SELinux como Permissivo, o Puppeteer / Chromium será executado sem problemas.

Obrigado :)

Editar: também devo mencionar que tenho httpd_use_nfs definido como on .

Aqui está um pastebin de todos os meus booleanos do SELinux.

SELinux booleanos

Editar 2:

Usando o conselho de @HBruijn eu tento montar com contexto definido, mas recebo erro.

Como comando raiz:% mount 10.0.0.1:/C/Users/Lee/Desktop/www /var/www -o context="system_u:object_r:httpd_sys_content_t:s0"

Erro: mount.nfs: requested NFS version or transport protocol is not supported

Servidor 10.0.0.1 é a configuração do meu servidor privado em vagrantfile .
config.vm.network "private_network", ip: "10.0.0.0"

O caminho de exportação é o mesmo que o Vagrant usa quando monta uma pasta em vagrant up , por exemplo, 10.0.0.1:/C/path/to/directory .

Alguma ideia?

    
por turrican_34 07.05.2018 / 13:41

1 resposta

0

Eu acho que você está tentando resolver o problema do lado errado, você considerou dar acesso ao seu servidor Web aos compartilhamentos NFS, em vez de:

setsebool -P httpd_use_nfs=1 

EDITAR Com base no seu comentário que você está executando o VirtualBox no Windows:

Eu acho que o seu host do Windows não suporta rotulagem e, em seguida, o cliente (seu CentOS) atribui uma política de segurança padrão como nfs_t .

Pode ser necessário definir seu contexto de segurança preferido como uma opção de montagem para substituir esse padrão (no comando mount ou / etc / fstab):

# mount server:/export /var/www/html -o  context="system_u:object_r:httpd_sys_content_t:s0" 

Veja o manual do RHEL 6

    
por 07.05.2018 / 13:52

Tags