Como fazer o Puppet corrigir tipos SELinux para diretórios pessoais?

Como fazer o Puppet corrigir tipos SELinux para diretórios pessoais?

Estamos usando pam_mkhomedir.so para criar automaticamente os diretórios iniciais dos usuários que fazem login com SSH. Há um bug no pam_mkhomedir que define os contextos do SELinux para home_root_t em vez de user_home_dir_t. A solução é usar pam_oddjob_mkhomedir, que implementamos.

No entanto, ainda temos muitos diretórios iniciais com contextos SELinux inválidos.

drwxr-xr-x. jdoe users unconfined_u:object_r:home_root_t:s0 jdoe

Como podemos projetar um módulo Puppet que corrija os contextos do SELinux em todos os diretórios iniciais dos usuários?

Eu estava pensando em uma solução como esta:

file { '/home/*':
    ensure => "directory",
    seltype => "user_home_dir_t"
}

Infelizmente, o curinga não funciona.

Responder1

Talvez isso seja útil?http://projects.puppetlabs.com/issues/2856

Recurselimit parece funcionar para/home/user1, mas também define/home como user_home_dir_t.

file { '/home/':
  ensure => "directory",
  recurse => true,
  recurselimit => 1,
  seltype => "user_home_dir_t"
}

Você pode configurar um fato personalizado que retorne todos os diretórios iniciais em uma matriz (muitos usuários podem ser um problema aqui):

$fact_home_dirs = ['/home/user1', '/home/user2']

file { $fact_home_dirs:
  ensure => "directory",
  seltype => "user_home_dir_t"
}

Talvez a melhor opção neste caso seja executar o restorecon, pois parece que você implementou uma solução para diretórios recém-criados.

informação relacionada