如何让 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,因为您似乎已经为新创建的目录实现了解决方案。

相关内容