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