あるディレクトリからSELinuxコンテキストをコピーして別のディレクトリに適用する方法は?
使用例のシナリオは、次のようにデフォルトの/homeパスの外に新しいローカルユーザーを作成することです。
$ sudo useradd -d /websites Tim
これにより、Timのホームディレクトリが作成され、/websites
Timの正しい権限と所有権が設定されますが、以下のように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
:タイプ