SELinuxラベルsvirt_sandbox_file_t
を/home
に追加しました
chcon -Rt svirt_sandbox_file_t /home
ラベルは次のように表示されます。
[user@localhost ~]$ ls -Z
unconfined_u:object_r:svirt_sandbox_file_t:s0 Desktop
unconfined_u:object_r:svirt_sandbox_file_t:s0 Documents
...
svirt_sandbox_file_t
ラベルを再度削除するにはどうすればよいですか?
再起動してみましたが、/home/.autorelabel
を追加してラベルの変更をトリガーしましたが、ラベルが消えません。 Fedora 23を使用しています。
/etc/selinux/config
をdisabled
に設定すると、再起動できます。次に、それをenforcing
に設定して再起動します。そうしないと、ラベルを付け直すのに問題があった場合に、ラベルが付け直されます。ただし、restoreconが機能しなかったのは奇妙です。
物事を難しい方法でリセットしたい場合、/ homeディレクトリ自体は次のようになります。
system_u:object_r:home_root_t
各ユーザーのホームディレクトリ(およびその中のファイル)は次のようになります。
unconfined_u:object_r:user_home_dir_t:s0
これらは、chcon
コマンドを使用するか、semanage
とrestorecon
の組み合わせを使用して設定できます。
chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*
または
semanage fcontext -a -t home_root_t /home
semanage fcontext -a -t user_home_dir_t /home/*
restorecon -R /home
一般的に言えばchcon
は、デフォルトをそのままにして、即座に変更を強制するために使用されるため、restorecon
はデフォルトコンテキストに復元することに注意してください。あなたの場合、それは何らかの理由で間違っているようです。
通常、semanage fcontext
は、ローカルコンテキストファイルを/etc/selinux/targeted/contexts/files/file_contexts.local
に書き込むことを目的としています
現在のコンテキストに関する豊富な情報、およびデフォルトのコンテキストは次の場所にあります。
/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs
どういうわけかそれらのファイルが何らかの形で損傷した可能性があり、全体として、これらのファイルの変更方法によっては、上記のアクションでは完全に復元できないサブコンテキストが多数あります。それらのファイルを調べて、追加したコンテキストマッピングを見つけて、その方法で削除できるかどうかを確認することをお勧めします。
理論的には、仮想マシンまたは別のマシン(または、おそらくそれらをオンラインで見つけることもできます)を使用して、既知の適切なデフォルトを適切なディレクトリにコピーし、システムがラベルを付け直して適切なデフォルトを取得することもできます。これもいくつかの短所があります。
結局のところ、試行錯誤が少し必要になるでしょう。上記のchcon/semanageコマンドは、幅広いストロークを提供するはずですが、サブディレクトリのいくつかは独自のコンテキストを持つ可能性があります。
役立つかもしれないいくつかの追加のコンテキスト(これらはすべて/ home/usernameにあります:
ls -laZ /home/username
##context########################### Directory##
unconfined_u:object_r:cache_home_t:s0 .cache
unconfined_u:object_r:config_home_t:s0 .config
unconfined_u:object_r:dbus_home_t:s0 .dbus
unconfined_u:object_r:gconf_home_t:s0 .gconf
unconfined_u:object_r:gconf_home_t:s0 .gconfd
unconfined_u:object_r:gpg_secret_t:s0 .gnupg
unconfined_u:object_r:gconf_home_t:s0 .local
unconfined_u:object_r:ssh_home_t:s0 .ssh
これは私のホームディレクトリに基づいていることに注意してください。探す必要がある可能性がある項目は他にもありますが、それらのほとんどが正しい場合、多かれ少なかれ軌道に乗っているはずです。