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