semanage command não alterando o contexto do arquivo

3

Estou tentando alterar o contexto do selinux para o diretório de upload para ativar o upload anônimo.

Este é o caminho do diretório / var / ftp / upload

Este é o contexto padrão

[root@server ftp]# ls -Z upload
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload

Eu tentei este comando para mudar o tipo do diretório

[root@server ftp]# semanage fcontext -a -t public_content_rw_t upload
[root@server ftp]# restorecon -v upload

Não está mudando, qual é o erro aqui?

[root@server ftp]# ls -Z pub
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload
    
por max 04.11.2013 / 06:34

4 respostas

1

Este é o contexto padrão

[root@server ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/

Eu tentei este comando para mudar o contexto

[root@server ftp]# semanage fcontext -a -t public_content_rw_t upload/
[root@server ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/
[root@server ftp]# restorecon -R -v upload
[root@server ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/

Não está funcionando, mas esse comando gravará o contexto em /etc/selinux/targeted/contexts/files/file_contexts.local file

veja aqui

# This file is auto-generated by libsemanage
# Do not edit directly.

upload/    system_u:object_r:public_content_rw_t:s0

Agora eu tentei este comando ( Comando de trabalho )

[root@server ftp]# semanage fcontext -a -t public_content_rw_t "/var/ftp/upload(/.*)?"
[root@server ftp]# restorecon -R -v upload
restorecon reset /var/ftp/upload context unconfined_u:object_r:public_content_t:s0->unconfined_u:object_r:public_content_rw_t:s0
Now context is changed.
[root@server ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_rw_t:s0 upload/

Mas eu realmente não sei porque está funcionando, veja a diferença no comando.

Eu recebi a resposta na página do manual de man ftpd_selinux

semanage fcontext -a -t public_content_rw_t "/var/ftpd/incoming(/.*)?"
    
por 21.01.2014 / 18:07
3

A diferença entre o semange e o chcon é que o chcon se "temporal" é o sistema que fica relabelado, os contextos presentes em um arquivo / diretório serão perdidos, usando o semanage faz com que os contextos selinux sejam persistentes.

Para semanage funcionar, você deve fornecer o caminho completo para o arquivo ou diretório, é por isso semanage fcontext -a -t public_content_rw_t upload/ não funciona, mas semanage fcontext -a -t public_content_rw_t "/var/ftp/upload(/.*)? faz; restorecon não requer caminho completo.

    
por 09.10.2014 / 21:56
0

Tente

chcon -t public_content_rw_t /var/ftp/upload

Vai funcionar.

    
por 04.11.2013 / 08:12
0

De acordo com esta página :

The file_contexts.local file stores contexts to newly created files and directories not found in file_contexts.

É por isso que você encontra a mensagem de log em file_contexts.local .

When changing the SELinux context with semanage fcontext -a, use the full path to the file or directory to avoid files being mislabeled after a file system relabel, or after the restorecon command is run.

Esta é a dica para usar o caminho completo para a remarcação correta.

    
por 24.03.2018 / 07:45