我们使用pam_mkhomedir.so来自动创build用SSHlogin的用户的主目录。 pam_mkhomedir中有一个错误,它将SELinux上下文设置为home_root_t而不是user_home_dir_t。 解决scheme是使用我们已经实现的pam_oddjob_mkhomedir。
然而,我们仍然有许多主目录与无效的SELinux上下文。
drwxr-xr-x. jdoe users unconfined_u:object_r:home_root_t:s0 jdoe
我们如何devise一个Puppet模块来纠正所有用户主目录下的SELinux上下文?
我正在考虑这样的解决scheme:
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" }
也许在这种情况下最好的select是运行restorecon,因为你似乎已经为新创build的目录实现了一个解决scheme。