SELinux
- O QUE É?
O tópico apresenta informações básicas sobre o Security-Enhanced Linux.
- POR QUÊ?
Para compreender o SELinux e saber como configurá-lo no SLE Micro.
- DEDICAÇÃO
A leitura leva aproximadamente 40 minutos.
1 Sobre o SELinux #
O SELinux foi desenvolvido como uma solução de segurança adicional do Linux que usa a estrutura de segurança do kernel Linux. O objetivo era permitir uma política de segurança mais granular que fosse além dos Controles de Acesso Discricionários (DAC, Discretionary Access Controls) padrão: as permissões de arquivo tradicionais de proprietário/grupo/globais e leitura/gravação/execução.
O SELinux usa rótulos anexados a objetos (por exemplo, arquivos e soquetes de rede) e toma decisões de acesso com base neles.
A ação padrão do SELinux é negar qualquer acesso. O SELinux apenas permite ações que foram especificamente autorizadas em sua política. Outro recurso do SELinux que reforça a segurança é que ele permite o confinamento rigoroso de processos até o ponto em que os processos não conseguem acessar arquivos de outros processos no mesmo sistema.
O SELinux foi projetado para aprimorar as soluções de segurança existentes, não para substituí-las. Por exemplo, o controle de acesso discricionário (DAC) ainda é aplicado, mesmo que o sistema use o SELinux. Se o DAC negar o acesso primeiro, o SELinux não será usado, pois o acesso já foi bloqueado por outro mecanismo.
2 Obtendo o SELinux #
O SELinux é instalado por padrão durante a instalação do SLE Micro pelo YaST ou faz parte das imagens predefinidas.
Se o SELinux não está configurado no sistema, execute o seguinte comando:
#
transactional-update setup-selinux
Reinicialize o sistema após a conclusão do comando. O comando instala a política do SELinux, se ela não estiver instalada, define o modo enforcing
do SELinux e reconstrói o initrd
.
3 Modos do SELinux #
O SELinux pode ser executado em um destes três modos: disabled
, permissive
ou enforcing
.
O uso do modo disabled
significa que nenhuma regra da política do SELinux é aplicada e o sistema não está protegido. Portanto, não recomendamos o uso do modo disabled
.
No modo permissive
, o SELinux está ativo, a política de segurança é carregada, o sistema de arquivos é rotulado e as entradas de negação de acesso são registradas. No entanto, a política não é imposta e, portanto, nenhum acesso é, de fato, negado.
No modo enforced
, a política de segurança é aplicada. Cada acesso que não é explicitamente permitido pela política é negado.
Para obter informações sobre como alternar entre os modos do SELinux, consulte a Seção 3.1, “Mudando o modo do SELinux”.
3.1 Mudando o modo do SELinux #
Você pode alternar o modo do SELinux temporariamente ou permanentemente.
3.1.1 Mudando o modo do SELinux temporariamente #
Para definir o SELinux como permissive
ou enforcing
temporariamente, use o comando setenforce
.
O comando setenforce
tem a seguinte sintaxe:
#
setenforceMODE_ID
em que MODE_ID é 0 para o modo permissive
ou 1 para o modo enforced
.
Lembre-se de que você não pode desabilitar o SELinux usando o comando setenforce
.
3.1.2 Mudando o modo do SELinux permanentemente #
Para fazer mudanças no modo do SELinux que persistam após a reinicialização do sistema, edite o arquivo de configuração /etc/selinux/config
. Nesse arquivo, você também pode desabilitar o SELinux no sistema. No entanto, essa ação não é recomendada. Se o SELinux estiver possivelmente causando problemas no sistema, alterne para o modo permissive
e depure o sistema.
No arquivo /etc/selinux/config
, mude o valor de SELINUX
para disabled
, permissive
ou enforced
da seguinte maneira:
SELINUX=disabled
As mudanças no arquivo serão aplicadas após a próxima reinicialização.
disabled
Se você desabilitar e, mais tarde, habilitar o SELinux no sistema, certifique-se de rotular novamente o sistema. Quando o SELinux está desabilitado, e você faz mudanças no sistema de arquivos, as mudanças não são mais refletidas no contexto (por exemplo, novos arquivos não têm nenhum contexto). Portanto, você precisa rotular novamente o sistema usando o comando restorecon
, o parâmetro de boot autorelabel
ou criando um arquivo que acionará o novo rótulo na próxima inicialização. Para criar o arquivo, execute o seguinte comando:
#
touch /etc/selinux/.autorelabel
Após a reinicialização, o arquivo /etc/selinux/.autorelabel
é substituído por outro arquivo de flag /etc/selinux/.relabelled
, para evitar que o novo rótulo seja aplicado às reinicializações subsequentes.
3.1.3 Verificando o modo do SELinux ativo #
Para verificar o modo, execute o seguinte comando:
#
getenforce
O comando deve retornar permissive
ou enforced
, dependendo do MODE_ID inserido.
3.2 Verificando se o SELinux está funcionando #
Se você está fazendo mudanças na configuração, pode ser útil alternar para o modo permissivo. Durante esse período, os usuários podem rotular os arquivos incorretamente e, portanto, causar problemas ao reverter para o modo de imposição.
Para retornar o sistema ao estado seguro, execute as seguintes etapas:
Redefina o contexto de segurança:
>
sudo
restorecon -R /
Alterne para o modo de imposição definindo o
SELINUX=enforcing
em/etc/selinux/config
.Reinicialize o sistema e efetue login novamente.
Execute o comando
sestatus -v
. Ele deve retornar uma saída semelhante a esta:>
sudo
sestatus -v
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: requested(insecure) Max kernel policy version: 33 Process contexts: Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 Init context: system_u:system_r:init_t:s0 /usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023 File contexts: Controlling terminal: unconfined_u:object_r:user_tty_device_t:s0 /etc/passwd system_u:object_r:passwd_file_t:s0 /etc/shadow system_u:object_r:shadow_t:s0 /bin/bash system_u:object_r:shell_exec_t:s0 \ -> system_u:object_r:shell_exec_t:s0 /bin/login system_u:object_r:login_exec_t:s0 /bin/sh system_u:object_r:bin_t:s0 \ -> system_u:object_r:shell_exec_t:s0 /sbin/agetty system_u:object_r:bin_t:s0 \ -> system_u:object_r:getty_exec_t:s0 /sbin/init system_u:object_r:bin_t:s0 -> \ system_u:object_r:init_exec_t:s0 /usr/sbin/sshd system_u:object_r:sshd_exec_t:s0Se o sistema não estiver funcionando apropriadamente, consulte os arquivos de registro em
/var/log/audit/audit.log
. Para obter mais detalhes, consulte SELinux troubleshooting.
4 Contexto de segurança do SELinux #
O contexto de segurança é um conjunto de informações atribuídas a um arquivo ou processo. Ele consiste em usuário, função, tipo, nível e categoria do SELinux. Essas informações são usadas para tomar decisões de controle de acesso.
- Usuário do SELinux
Uma identidade definida na política que é autorizada para um conjunto específico de funções e para uma faixa de níveis específica. Cada usuário do Linux é mapeado para apenas um usuário do SELinux. No entanto, um usuário do SELinux pode ter várias funções.
O SELinux não usa a lista de contas de usuário mantida pelo Linux no
/etc/passwd
, mas usa o próprio banco de dados e mapeamento. Por convenção, o nome da identidade recebe o sufixo_u
, por exemplo:user_u
.Quando uma nova conta do Linux é criada e o usuário do SELinux não é atribuído à conta, o usuário do SELinux padrão é usado. Normalmente, o valor padrão é
unconfined_u
. Para ver um procedimento sobre como mudar o valor padrão, consulte a Seção 7.5.2, “O comandosemanage login
”.- role
Define um conjunto de permissões que um usuário pode receber. A função atribuída a um usuário define os tipos que ele pode acessar. Por convenção, o nome da função recebe o sufixo
_r
, por exemplo:system_r
.- type
O tipo transmite informações sobre como arquivos e processos específicos podem interagir. Um processo consiste em arquivos com um tipo concreto do SELinux e não pode acessar arquivos de outro tipo. Por convenção, o nome do tipo recebe o sufixo
_t
, por exemplo:var_t
.- level
Um atributo opcional que especifica a faixa de níveis de permissão na segurança multinível.
- category
Um atributo opcional que permite adicionar categorias a processos, arquivos e usuários. Um usuário pode acessar arquivos que tenham a mesma categoria.
Veja abaixo um exemplo de contexto do SELinux:
allow user_t bin_t:file {read execute gettattr};
Esta regra de exemplo especifica que o usuário com o tipo de contexto user_t
(esse usuário é chamado de objeto de origem) tem permissão para acessar objetos do arquivo de classe com o tipo de contexto bin_t
(o destino), usando as permissões read
, execute
e getattr
.
5 Visão geral da política do SELinux #
A política é o principal componente do SELinux. A política do SELinux define regras que especificam quais objetos podem acessar quais arquivos, diretórios, portas e processos em um sistema. Para fazer isso, um contexto de segurança é definido para todos eles.
Uma política do SELinux contém um grande número de regras. Para torná-las mais gerenciáveis, as políticas costumam ser divididas em módulos. Isso permite que o administrador ative ou desative a proteção para diferentes partes do sistema.
Ao compilar a política para seu sistema, você pode trabalhar com uma política modular ou monolítica, em que uma política extensa é usada para proteger tudo no sistema. É altamente recomendável usar uma política modular em vez de uma monolítica. As políticas modulares são muito mais fáceis de gerenciar.
O SLE Micro já vem com a política targeted
do SELinux.
5.1 Trabalhando com módulos do SELinux #
Como administrador, você pode ativar ou desativar módulos. Isso poderá ser útil se você quiser desabilitar apenas uma parte da política do SELinux e não quiser executar um serviço específico sem a proteção do SELinux.
Para ver todos os módulos de política do SELinux em uso, execute o comando:
semodule -l
Após obter o nome do módulo que deseja desativar, execute o comando:
>
sudo
semodule -d MODULENAME
Para ativar o módulo de política, execute o comando:
>
sudo
semodule -e MODULENAME
5.2 Criando políticas para contêineres #
O SLE Micro é fornecido com uma política que, por padrão, não permite que os contêineres acessem arquivos que não façam parte dos dados dos contêineres. Por outro lado, todo o acesso à rede é permitido. Normalmente, os contêineres são criados com montagens de vinculação e devem ser capazes de acessar outros diretórios, como /home
ou /var
. Talvez você queira ter a opção de permitir o acesso a esses diretórios ou, ao contrário, restringir o acesso de determinadas portas ao contêiner, mesmo que o SELinux seja usado no sistema. Nesse caso, você precisa criar novas regras de política que habilitem ou desabilitem o acesso. Para essa finalidade, o SLE Micro oferece a ferramenta Udica.
O procedimento a seguir descreve como criar uma política personalizada para seus contêineres:
Verifique se o SELinux está no modo de imposição. Para obter informações detalhadas, consulte a Seção 3.1, “Mudando o modo do SELinux”.
Inicie um contêiner usando os seguintes parâmetros:
#
podman run -v /home:/home:rw -v /var/:/var/:rw -p 21:21 -it sle15 bashO contêiner é executado com a política padrão que não permite acesso aos pontos de montagem, mas não restringe outras portas.
Você pode sair do contêiner.
Obtenha o ID do contêiner:
#
podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e59f9d0f86f2 registry.opensuse.org/devel/bci/tumbleweed/containerfile/opensuse/bci/ruby:latest /bin/bash 8 minutes ago Up 8 seconds ago 0.0.0.0:21->21/tcp zen_ramanujanCrie um arquivo JSON que o Udica usará para criar uma política personalizada para o contêiner:
#
podman inspect e59f9d0f86f2 >OUTPUT_JSON_FILEPor exemplo, substitua OUTPUT_JSON_FILE por
container.json
.Execute o Udica para gerar uma política de acordo com os parâmetros do contêiner:
#
udica -jOUTPUT_JSON_FILECUSTOM_CONTAINER_POLICYPor exemplo:
#
udica -j container.json custom_policyDe acordo com as instruções fornecidas, carregue os módulos de política executando:
#
semodule -i custom_policy.cil /usr/share/udica/templates/{base_container.cil,net_container.cil,home_container.cil}Execute um contêiner com o novo módulo de política usando a opção
--security-opt
da seguinte maneira:#
podman run --security-opt label=type:custom_policy.process -v /home:/home:rw -v /var/:/var/:rw -p 21:21 -it sle15 bash
6 Boolianos do SELinux #
Os boolianos do SELinux suportam uma abordagem flexível de gerenciamento de políticas. Por exemplo, eles permitem desabilitar uma política específica em um servidor e manter a mesma política ativa em outro. Em outras palavras, um booliano pode ser considerado como um switch de uma regra de política. Em vez de mudar uma política específica, você pode desativá-la. No código da política, os boolianos são chamados de ajustáveis. Como estão incluídos na política, eles ficam disponíveis assim que a política é carregada.
As mudanças no valor dos boolianos podem ser persistentes ou temporárias, durando até o término da sessão.
O SELinux oferece ferramentas que permitem listar e ver detalhes ou mudar o estado dos boolianos. Consulte as seções a seguir para obter detalhes.
6.1 Trabalhando com boolianos #
6.1.1 Listando boolianos #
Você pode usar o comando getsebool
ou semanage
para listar os boolianos definidos no momento. Para listar todos os boolianos definidos no momento, junto com os respectivos estados, execute o seguinte comando:
#
getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
...
Para obter mais detalhes sobre boolianos específicos, você pode usar o comando semanage
da seguinte maneira:
#
semanage boolean -l
SELinux boolean State Default Description
abrt_anon_write (off , off) Allow abrt to anon write
abrt_handle_event (off , off) Allow abrt to handle event
abrt_upload_watch_anon_write (on , on) Allow abrt to upload watch anon write
Para saber o status de cada booliano, você pode usar o seguinte comando:
#
getseboolBOOLEAN_NAME
Se preferir, use o comando grep
na saída de semanage boolean
:
#
semanage boolean -l | grepBOOLEAN_NAME
6.1.2 Alternando boolianos #
É possível usar os comandos setsebool
e semanage
para alternar o valor dos boolianos. Você pode mudar o status do booliano de forma persistente ou apenas temporária até o término da sessão. Para mudar o valor de um booliano temporariamente, execute o seguinte comando:
#
setseboolBOOLEAN_NAMEBOOLEAN_VALUE
em que BOOLEAN_VALUE é on
ou off
.
Para mudar o valor de um booliano persistentemente, execute o seguinte comando:
#
setsebool -PBOOLEAN_NAMEBOOLEAN_VALUE
Se preferir, use o comando semanage
:
#
semanage boolean -m --BOOLEAN_VALUEBOOLEAN_NAME
em que BOOLEAN_VALUE é on
ou off
.
Um único booliano pode habilitar ou desabilitar várias regras de política. Para ver quais regras de política são habilitadas ou desabilitadas por quais boolianos, use a ferramenta sedispol
, que pode analisar o arquivo de política:
#
sedispol /etc/selinux/targeted/policy/policy.32
Como as regras de política geralmente são enormes, recomendamos configurar um arquivo de saída selecionando f
e especificando um nome de arquivo. Após especificar o nome de arquivo, pressione 6
. Em seguida, você pode inspecionar o arquivo.
7 Ferramentas para gerenciar o SELinux #
O SLE Micro oferece a você ferramentas para gerenciar o SELinux em seu sistema. Se as ferramentas descritas abaixo não estiverem instaladas em seu sistema, instale-as executando:
#
transactional-update pkg install policycoreutils-python-utils
Após a instalação bem-sucedida, reinicialize o sistema.
7.1 Usando a opção Z
#
No sistema em que o SELinux está instalado e configurado, você pode usar -Z
para comandos regulares, como ls
, id
ou ps
. Usando essa opção, você pode exibir o contexto de segurança de arquivos ou processos. Por exemplo, com o comando ls
:
>
ls -Z /etc/shadow
system_u:object_r:shadow_t:s0 /etc/shadow
7.2 O comando chcon
#
O nome do comando chcon
significa mudança de contexto. O comando pode mudar o contexto de segurança completo de um arquivo para o valor fornecido na CLI ou pode mudar partes do contexto. Se preferir, insira um arquivo que sirva como referência.
Para mudar o contexto de segurança completo de um arquivo, a sintaxe do comando é a seguinte:
#
chconSECURITY_CONTEXTFILENAME
em que:
SECURITY_CONTEXT está no formato: SELinux_USER:ROLE:TYPE:LEVEL:CATEGORY. Por exemplo, o contexto pode ser: system_u:object_r:httpd_config_t:s0.
FILENAME é um caminho para o arquivo cujo contexto deve ser mudado.
Para definir um contexto de segurança de acordo com um arquivo fornecido que serve como referência, execute o chcon
da seguinte maneira:
#
chcon --reference=REFERENCE_FILEFILENAME
em que:
REFERENCE_FILE é um caminho para um arquivo que deve ser usado como referência.
FILENAME é um caminho para o arquivo cujo contexto deve ser mudado.
Se preferir, mude apenas uma parte do contexto de segurança. A sintaxe geral do comando chcon
é a seguinte:
#
chconCONTEXT_OPTIONCONTEXT_PARTFILENAME
As opções e os argumentos têm o seguinte significado:
dependendo da parte do contexto, CONTEXT_OPTION pode ser qualquer um dos seguintes:
-u
resp--user
indica que um contexto de usuário do SELinux será mudado no arquivo fornecido:
#
chcon -u system_u logind.conf-r
resp--role
apenas a parte da função será mudada no contexto do arquivo fornecido:
#
chcon -r object_r logind.conf-t
resp--type
apenas a parte do tipo será mudada no contexto do arquivo fornecido:
#
chcon -t etc_t logind.conf-l
resp--range
apenas a parte da faixa do contexto de segurança será mudada:
#
chcon -l s0 logind.conf
CONTEXT_PART é o valor específico do contexto de segurança que será definido.
FILENAME é um caminho para o arquivo cujo contexto será mudado.
chcon
em links simbólicos
Por padrão, quando você muda o contexto de segurança em um link simbólico, o contexto do destino do link é mudado e o contexto do link simbólico não é mudado. Para forçar o chcon
a mudar o contexto do link simbólico, e não o destino do link, use a opção --no-dereference
mostrada abaixo:
#
chcon --no-dereference -u system_u -t etc_t network.conf
Você pode mudar o contexto de todos os arquivos em um diretório usando a opção recursiva:
#
chcon --recursive system_u:object_r:httpd_config_t:s0 conf.d
7.3 Comandos getenforce
e setenforce
#
O comando getenforce
retorna o modo do SELinux atual: Enforcing
, Permissive
ou Disabled
.
#
getenforce
Permissive
O comando setenforce
muda temporariamente o modo do SELinux para imposição ou permissivo. Não é possível usar esse comando para desabilitar o SELinux. Lembre-se de que a mudança permanece apenas até a próxima reinicialização. Para mudar o estado permanentemente, siga a descrição na Seção 3.1, “Mudando o modo do SELinux”.
#
setenforceMODE_ID
em que MODE_ID é 0 para o modo permissive
ou 1 para o modo enforced
.
7.4 O script fixfiles
#
O script permite que você execute as seguintes tarefas com o contexto de segurança:
verificar se o contexto está correto
mudar qualquer rótulo de contexto de arquivo incorreto
renomear seu sistema se você adicionar uma nova política
Veja a seguir a sintaxe do script:
#
fixfiles [OPTIONS] ARGUMENT
em que:
OPTIONS pode ser o seguinte:
-
-l
LOGFILE grava a saída no arquivo fornecido
-
-o
OUTPUT_FILE grava no arquivo de saída fornecido os nomes de todos os arquivos cujo contexto seja diferente do padrão
-
-F
força a redefinição do contexto
-
ARGUMENT pode ser um dos seguintes:
-
check
mostra o contexto do arquivo anterior e atual de um rótulo incorreto sem realizar nenhuma mudança
-
relabel
reclassifica contextos de arquivo incorretos de acordo com a política carregada no momento
-
restore
restaura contextos de arquivo incorretos aos valores padrão
-
verify
lista todos os arquivos com rótulos de contexto de arquivo incorretos sem realizar nenhuma mudança
-
7.5 O comando semanage
#
O comando semanage
pode ser usado para configurar partes da política sem a necessidade de recompilar a política de fontes. O comando permite executar as seguintes tarefas:
gerenciar boolianos usando o argumento
boolean
. Para obter detalhes sobre boolianos, consulte a Seção 6.1, “Trabalhando com boolianos”.ajustar o contexto dos arquivos usando o argumento
fcontext
gerenciar mapeamentos de usuários usando o argumento
login
gerenciar usuários do SELinux usando o argumento
user
gerenciar módulos de política do SELinux usando o argumento
module
A sintaxe geral do comando tem a seguinte aparência:
#
semanageARGUMENTOPTIONS [OBJECT_NAME]
em que:
ARGUMENT é um dos seguintes:
login
,user
,fcontext
,boolean
emodule
.OPTIONS depende do ARGUMENT especificado. As opções comuns estão descritas em Opções comuns.
OBJECT_NAME, dependendo do ARGUMENT especificado, pode ser um nome de login, de módulo ou de arquivo ou um usuário do SELinux.
-a
,--add
adiciona um objeto fornecido
-h
,--help
imprime o comando de ajuda
- --extract
exibe os comandos que foram usados para mudar o sistema (boolianos, contexto de arquivo etc.).
-l
,--list
lista todos os objetos
-m
,--modify
modifica o objeto fornecido
-n
,--noheading
modifica a saída da operação de listagem omitindo os cabeçalhos.
-s
,--seuser
especifica o usuário do SELinux.
Outras opções são específicas de determinados comandos semanage
e estão descritas nas seções correspondentes.
7.5.1 O comando semanage fcontext
#
Usando o comando semanage fcontext
, você pode executar as seguintes tarefas:
consultar definições de contexto de arquivo
adicionar contextos a arquivos
adicionar suas próprias regras
As mudanças feitas no contexto do arquivo usando o comando semanage
fcontext
não exigem modificações ou recompilação da política.
Além das opções comuns descritas em Opções comuns, o comando semanage
fcontext
usa as seguintes opções:
-e
,--equal
a opção permite usar o contexto do caminho fornecido para rotular arquivos em um diretório diferente (o caminho de destino especificado). Por exemplo, para atribuir o mesmo contexto que
/home
tem a um diretório pessoal alternativo/export/home
. Se você usar essa opção, precisará inserir o caminho de origem e de destino:#
semanage fcontext -a -e /home /export/home-f
,--ftype
especifique um tipo de arquivo. Use um dos seguintes valores:
a
: todos os arquivos, que também é o valor padrãob
: um dispositivo de blocosc
: um dispositivo de caracteresd
: um diretóriof
: arquivos regularesl
: um link simbólicop
: um named pipes
: um soquete
7.5.2 O comando semanage login
#
O semanage login
permite executar as seguintes tarefas:
Mapear usuários do Linux em um determinado usuário do SELinux. Por exemplo, para mapear o usuário do Linux tux em
sysadm_u
, execute o comando:#
semanage login -a -s sysadm_u tux
Mapear um grupo de usuários do Linux em um determinado usuário do SELinux. Por exemplo, para mapear usuários do grupo writers em
user_u
, execute o comando:#
semanage login -a -s user_u %writers
O grupo é listado na saída de
semanage login -l
, prefixado com o caractere %.Lembre-se de que o grupo de usuários deve ser o principal, pois o mapeamento de usuários do SELinux em grupos Suplementares pode resultar em mapeamentos incompatíveis.
#
semanage login -m -s staff_u %writers
Mapear usuários do Linux em uma faixa de segurança MLS/MCS específica do SELinux.
Modificar o mapeamento já criado. Para isso, basta substituir a opção
-a
por-m
nos comandos anteriores.Definir o usuário padrão do SELinux para novos usuários do Linux. O usuário padrão do SELinux costuma ser
unconfined_u
. Para mudar o valor parastaff_u
, execute o comando:#
semanage login -m -s staff_u __default__
7.5.3 O comando semanage boolean
#
O comando semanage boolean
é usado para controlar os boolianos na política do SELinux.
A sinopse do comando tem a seguinte aparência:
semanage boolean [-h] [-n] [ --extract | --deleteall | --list [-C] | --modify ( --on | --off | -1 | -0 ) boolean ]
Além das opções comuns, você pode usar as seguintes opções específicas do comando semanage boolean
:
- --list -C
Para exibir uma lista de modificações locais em boolianos.
- -m --on | -1
Para ativar o booliano fornecido.
- -m --off | -0
Para desativar o booliano fornecido.
- -D, --deleteall
Para apagar todas as modificações locais em boolianos.
O uso mais comum do comando é ativar ou desativar um booliano específico. Por exemplo, para ativar o booliano authlogin_yubikey
, execute:
#
semanage boolean -m on authlogin_yubikey
7.5.4 O comando semanage user
#
O comando semanage user
controla o mapeamento entre o usuário do SELinux e as funções e os níveis MLS/MCS.
Além das opções comuns descritas em Opções comuns, o comando semanage
use
usa as seguintes opções:
- -R [ROLES], --roles [ROLES]
Uma lista de funções do SELinux. Você pode colocar várias funções entre aspas duplas e separá-las com espaços ou usar
-R
várias vezes.
Usando esse comando, você pode executar as seguintes tarefas:
Listar o mapeamento de usuários do SELinux em funções executando:
#
semanage user -l
Mudar as funções atribuídas ao usuário
user_u
do SELinux:#
semanage user -m -R "system_r unconfined_r user_r"
Atribuir para
admin_u
a funçãostaff_r
e a uma categorias0
:#
semanage user -a -R "staff_r -r s0 admin_u
Criar um novo usuário do SELinux, por exemplo,
admin_u
com a funçãostaff_r
. Você também precisa definir o prefixo de rótulo para esse usuário usando-P
:#
semanage user -a -R "staff_r" -P admin admin_u
7.5.5 O comando semanage module
#
O comando semanage module
pode instalar, remover, desabilitar ou habilitar módulos de política do SELinux.
Além das opções comuns descritas em Opções comuns, o comando semanage
fcontext
usa as seguintes opções:
-d
,--disable
Para desabilitar o módulo de política do SELinux fornecido:
#
semanage module --disable MODULE_NAME
-e
,--enable
Para habilitar o módulo de política do SELinux fornecido:
#
semanage module --enable MODULE_NAME
7.6 O comando sestatus
#
O sestatus
obtém o status de um sistema em que o SELinux está sendo executado.
A sintaxe genérica do comando é a seguinte:
sestatus [OPTION]
Quando executado sem opções e argumentos, o comando gera as seguintes informações:
#
sestatus
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: requested (insecure) Max kernel policy version: 33
O comando pode ter as seguintes opções:
- -b
Exibe o status dos boolianos no sistema.
- -v
Exibe o contexto de segurança dos arquivos e processos listados no arquivo
/etc/sestatus.conf
.
8 Informações legais #
Copyright © 2006-2025 SUSE LLC e colaboradores. Todos os direitos reservados.
Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença GNU de Documentação Livre, Versão 1.2 ou (por sua opção) versão 1.3; com a Seção Invariante sendo estas informações de copyright e a licença. Uma cópia da versão 1.2 da licença está incluída na seção intitulada “GNU Free Documentation License” (Licença GNU de Documentação Livre).
Para ver as marcas registradas da SUSE, visite https://www.suse.com/company/legal/. Todas as marcas comerciais de terceiros pertencem a seus respectivos proprietários. Os símbolos de marca registrada (®, ™ etc.) indicam marcas registradas da SUSE e de suas afiliadas. Os asteriscos (*) indicam marcas registradas de terceiros.
Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes. Entretanto, isso não garante uma precisão absoluta. A SUSE LLC, suas afiliadas, os autores ou tradutores não serão responsáveis por possíveis erros nem pelas consequências resultantes de tais erros.