あるディレクトリからSELinuxコンテキストをコピーして別のディレクトリに適用する方法は?

あるディレクトリからSELinuxコンテキストをコピーして別のディレクトリに適用する方法は?

あるディレクトリからSELinuxコンテキストをコピーして別のディレクトリに適用する方法は?

使用例のシナリオは、次のようにデフォルトの/homeパスの外に新しいローカルユーザーを作成することです。

$ sudo useradd -d /websites Tim

これにより、Timのホームディレクトリが作成され、/websitesTimの正しい権限と所有権が設定されますが、以下のようにSELinuxコンテキストが他のユーザーとは異なります。

# ls -dZ /websites
drwx------. Tim Tim system_u:object_r:etc_runtime_t:s0 /websites

私が望むのは、他のユーザーの/ homeディレクトリからSELinuxコンテキストをコピーしてTimの/websitesディレクトリに適用することです。

他のユーザーのSELinuxコンテキストは次のとおりです。

# ls -Z /home/
drwx------. Ben  Ben  unconfined_u:object_r:user_home_dir_t:s0 Ben
drwx------. Bob  Bob  unconfined_u:object_r:user_home_dir_t:s0 Bob
drwx------. lexy lexy unconfined_u:object_r:user_home_dir_t:s0 lexy

答え1

これは、次のように-aフラグを使用して簡単に実行できます。-e

semanage fcontext -a -e /home/Ben '/websites(/.*)?' 

-a:追加する、

-e:同等


その後、次のようにRestoreconを実行する必要があります。

restorecon -vvRF /websites

そして、新しいファイルコンテキストが適用されます。

-v:ファイルラベルの変更を表示します。

-R:再帰、

-F:強制コンテキストのリセット


次のコマンドを使用して SELinux ファイルのコンテキストを変更することもできます。

semanage fcontext -a -t httpd_sys_content_t '/website(/.*)?'

それにもかかわらず、これは新しいファイルコンテキストを割り当てます。

-a:追加する、

-t:タイプ

関連情報