Назад | Перейти на главную страницу

Как заставить 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"
}

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

Может быть, это было бы полезно? 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, поскольку вы, кажется, реализовали решение для вновь созданных каталогов.