Как заставить Puppet исправить типы SELinux для домашних каталогов?

Как заставить Puppet исправить типы SELinux для домашних каталогов?

Мы используем pam_mkhomedir.so для автоматического создания домашних каталогов пользователей, входящих через SSH. В pam_mkhomedir есть ошибка, которая устанавливает контексты SELinux на home_root_t вместо user_home_dir_t. Решение заключается в использовании pam_oddjob_mkhomedir, который мы реализовали.

Однако у нас все еще есть много домашних каталогов с недействительными контекстами SELinux.

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

Как разработать модуль Puppet, который будет корректировать контексты SELinux во всех домашних каталогах пользователей?

Я думал о таком решении:

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

К сожалению, подстановочный знак не работает.

решение1

Может быть, это будет полезно?http://projects.puppetlabs.com/issues/2856

Recurselimit, похоже, работает для /home/user1, но также устанавливает /home в user_home_dir_t.

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

Вы можете настроить пользовательский факт, который возвращает все домашние каталоги в массиве (слишком большое количество пользователей может стать проблемой):

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

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

Возможно, лучшим вариантом в этом случае будет запуск restorecon, поскольку вы, судя по всему, реализовали решение для вновь созданных каталогов.

Связанный контент