Estamos usando SSSD para autenticar usuários em servidores CentOS. oddjobd-mkhomedir funciona perfeitamente bem quando o diretório inicial padrão é /home, mas em um servidor específico, tivemos que alterar o diretório inicial padrão para /data, que está em uma montagem SAN.
Agora, toda vez que um usuário tenta fazer login, ele é colocado em um shell bash com a seguinte mensagem.
Creating home directory for first.last.
Could not chdir to home directory /data/X.Y.local/first.last: No such file or directory
-bash-4.1$
Vejo a seguinte mensagem de negação do AVC para cada tentativa:
type=AVC msg=audit(1492004159.114:1428): avc: denied { create } for pid=2832
comm="mkhomedir" name="x.y.local"
scontext=system_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023
tcontext=system_u:object_r:default_t:s0 tclass=dir
Certifique-se de alterar o contexto de /data.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Se /data tem o mesmo contexto que /home, por que o SELinux está restringindo o oddjobd para criar /data/XYlocal/first.last ?
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[ATUALIZAR]
Não tenho certeza se esta é a maneira correta de resolver isso, mas depois de adicionar as três entradas a seguir, os usuários agora podem fazer login e acessar seus diretórios pessoais. Para novos diretórios de usuários são criados com base no contexto definido abaixo.
semanage fcontext -a -t home_root_t /data
semanage fcontext -a -t user_home_dir_t /data/x.y.local
semanage fcontext -a -t user_home_t "/data/x.y.local(/.*)?"
Esta é a maneira correta de contornar esse problema?
Responder1
Essa última seção semanage fcontext
é a maneira correta de definir permanentemente o contexto, sim. Você precisará correr restorecon
para que isso tenha efeito.
restorecon -Rv /data
restorecon
levará em consideração qualquer coisa em /etc/selinux/targeted/contexts/files/file_contexts.local
, que deve ter seus fcontexts personalizados que você acabou de adicionar usandosemanage
Para definir esses contextos temporariamente, consulte o chcon
comando:
chcon -Rv -t home_root_t /data
Responder2
Ao realocar diretórios pessoais, a melhor solução é provavelmente usar o mecanismo EQUAL semanage fcontext
descrito emesta resposta por falha do servidor:
semanage fcontext -a -e /home /data
Isto é para garantir que todas as regras do local de residência original também sejam aplicadas ao novo.