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