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 を使用しています。
答え1
/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
これは私のホーム ディレクトリに基づいていることに注意してください。他にも探し出さなければならないものがあるかもしれませんが、それらのほとんどが正しければ、ほぼ正しい方向に戻るはずです。