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.