如何讓 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,因為您似乎已經為新建立的目錄實現了解決方案。

相關內容