web-dev-qa-db-ja.com

SELinuxラベルを削除する方法?

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を使用しています。

5
m.s.

/etc/selinux/configdisabledに設定すると、再起動できます。次に、それをenforcingに設定して再起動します。そうしないと、ラベルを付け直すのに問題があった場合に、ラベルが付け直されます。ただし、restoreconが機能しなかったのは奇妙です。

物事を難しい方法でリセットしたい場合、/ homeディレクトリ自体は次のようになります。

system_u:object_r:home_root_t

各ユーザーのホームディレクトリ(およびその中のファイル)は次のようになります。

unconfined_u:object_r:user_home_dir_t:s0

これらは、chconコマンドを使用するか、semanagerestoreconの組み合わせを使用して設定できます。

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

これは私のホームディレクトリに基づいていることに注意してください。探す必要がある可能性がある項目は他にもありますが、それらのほとんどが正しい場合、多かれ少なかれ軌道に乗っているはずです。

4
Gravy