SSH でログインするユーザーのホーム ディレクトリを自動的に作成するために、pam_mkhomedir.so を使用しています。pam_mkhomedir には、SELinux コンテキストを user_home_dir_t ではなく home_root_t に設定するバグがあります。解決策は、私たちが実装した pam_oddjob_mkhomedir を使用することです。
ただし、無効な SELinux コンテキストを持つホーム ディレクトリがまだ多数存在します。
drwxr-xr-x. jdoe users unconfined_u:object_r:home_root_t:s0 jdoe
すべてのユーザーのホームディレクトリの SELinux コンテキストを修正する Puppet モジュールをどのように設計すればよいでしょうか?
私は次のような解決策を考えていました:
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 を実行することです。