¿Cómo hacer que Puppet arregle los tipos SELinux para directorios de inicio?

¿Cómo hacer que Puppet arregle los tipos SELinux para directorios de inicio?

Estamos utilizando pam_mkhomedir.so para crear automáticamente los directorios de inicio de los usuarios que inician sesión con SSH. Hay un error en pam_mkhomedir que establece los contextos de SELinux en home_root_t en lugar de user_home_dir_t. La solución es usar pam_oddjob_mkhomedir, que hemos implementado.

Sin embargo, todavía tenemos muchos directorios de inicio con contextos SELinux no válidos.

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

¿Cómo podemos diseñar un módulo Puppet que corrija los contextos de SELinux en todos los directorios de inicio de los usuarios?

Estaba pensando en una solución como esta:

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

Lamentablemente el comodín no funciona.

Respuesta1

¿Quizás esto sería útil?http://projects.puppetlabs.com/issues/2856

Recurselimit parece funcionar para /home/user1, pero también establece /home en user_home_dir_t.

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

Puede configurar un hecho personalizado que devuelva todos los directorios de inicio en una matriz (demasiados usuarios podrían ser un problema aquí):

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

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

Quizás la mejor opción en este caso sería ejecutar recoverycon ya que parece haber implementado una solución para directorios recién creados.

información relacionada