あるディレクトリから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
これは単に-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
:タイプ