だから今ファイル検索にはファイルコンテキストが.ssh
必要です。ssh_home_t
では、SELinuxルールをネストする方法を理解する必要があります。
最初の問題は、目的の目的を説明するSELinuxファイルのコンテキストのリストが見つからないことです。だから私はここに行かなければならないかもしれません。私の考えでは、次の3つのことを順番にすべきだと思います。
- 各ディレクトリ一致を
/exports/home/$USER
次に設定します。nfs_t
いいえまた一致します$USER
。これは私のNFSサーバーにホームディレクトリを合法的にエクスポートできることを伝えます。 - すべてを
/exports/home/$USER/.*
…何かに設定しますか?ここでは、説明を含む包括的なリストが役に立ちます。 SELinuxには通常、ユーザーホームディレクトリのファイルを指定するファイルコンテキストがありますか? - すべてを一致させる
/exports/home/$USER/\.ssh(/.*)
ただとしてssh_home_t
SSHDを使用できるようにしますauthorized_keys
。
NFSサーバーで3つの規則をすべて呼び出す必要があります。また、2番目と3番目のルールを呼び出す必要があります。個人ユーザーとしてホームディレクトリがインストールされているすべてのホストから、個々のユーザーのファイルにアクセスします。明らかに私がしたいので、これらのホームディレクトリの1つがインストールされているすべてのホストでルートディレクトリを圧縮します。ユーザーは、NFSサーバーではなくホストからSSHファイルを含むファイルを生成する可能性があります。
修正する
正しいファイルコンテキストが見つかったようです。これで正しい正規表現を見つけてください。
# semanage fcontext -a nfs_t '<regexp 1>'
# semanage fcontext -a user_home_t '<regexp 2>'
# semanage fcontext -a ssh_home_t '<regexp 3>'
どこ
<regexp 1>
つかんで/exports/home/$USER
もう行かないでください。<regexp 2>
捕まえる/exports/home/$USER\.*
とは別にexports/home/$USER/\.ssh(/.*)?
。<regexp 3>
キャプチャexports/home/$USER/\.ssh(/.*)?
。
$USER
文字列(つまり、すべてのユーザー)とは何の関係もありません。POSIX拡張正規表現許可されていないようです。
ベストアンサー1
シンプルで衝撃的な答えは次のとおりです。
SELinux には既に基本ルール "/export/home/*" があります。 「s」を削除すると問題が解決します。