semanage Gerador de comandos
Gerar comandos semanage para gerenciar mapeamentos de política SELinux (fcontext, login, user, port, boolean)
Começando com o semanage
## O que é o semanage?
O `semanage` gerencia as mapeações de política do SELinux — as etiquetas que informam ao kernel o que um processo, arquivo, porta ou usuário logado tem *permissão* para fazer. Ele não altera o modo de aplicação estrita/permissivo em si (isso é feito por `setenforce`); em vez disso, configura as mapeações persistentes utilizadas pela política do SELinux.
## Como usar
1. **Escolha um objeto**: `fcontext` (etiquetas de arquivo), `login` (mapeamento usuário Linux → usuário SELinux), `user`, `port` ou `boolean`. 2. **Escolha uma ação**: `add` (`-a`), `modify` (`-m`), `delete` (`-d`) ou `list` (`-l`). 3. **Defina o tipo SELinux** (`-t`) e o **valor** (expressão regular de caminho, porta, usuário, etc.). 4. **Aplique o contexto do arquivo**: Para alterações em `fcontext`, execute `restorecon` posteriormente para que os arquivos existentes sejam relabelados. 5. **Copie e execute**: Adicione o prefixo `sudo`.
Objetos, Ações e Opções
### Mapeamentos de contexto de arquivo `fcontext` Associe uma expressão regular de caminho a um tipo SELinux. Após adicionar ou modificar, execute `restorecon -Rv /path` para reetiquetar os arquivos existentes: `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### Mapeamento Linux-user → SELinux-user `login` Associe um login do Linux (ou `__default__`) a um usuário SELinux, por exemplo, `semanage login -a -s user_u john`.
### Usuários SELinux `user` Crie ou modifique usuários SELinux e os papéis que eles podem assumir.
### Mapeamentos porta → tipo `port` Etiquete uma porta de rede para que um serviço confinado possa se vincular a ela: `semanage port -a -t http_port_t -p tcp 8080`.
### Booleanos de política `boolean` Ative ou desative um booleano nomeado para alterar o comportamento de uma política (`semanage boolean -m --on httpd_can_network_connect`).
### Ações `-a` / `-m` / `-d` / `-l` Adicione um novo mapeamento, modifique um existente, exclua um ou liste os mapeamentos atuais.
▶O que é um contexto SELinux e por que é importante?
▶Eu adicionei uma regra fcontext, mas o httpd ainda não consegue ler os arquivos — por quê?
▶Como posso permitir que um serviço escute em uma porta não padrão?
Se este ferramenta foi útil para você, pense em me dar um café.
Compre um café para mim.