Restoreconはリンクをどのように処理しますか?

Restoreconはリンクをどのように処理しますか?

私はこの規則に気づきました。

/usr/sbin/shutdown  --  gen_context(system_u:object_r:shutdown_exec_t,s0)

ラベルは/usr/sbin/shutdown shutdown_exec_tいつ/usr/sbinディレクトリですか?ただし、/usr/sbinシンボリックリンクがbinあるshutdown場合は、同じラベルを復元しません/usr/bin。なぜ?/usr/sbinシンボリックリンクの場合、正しいコンテキストにある必要があるファイルをbin提供する簡単な方法はありますか?/usr/sbin

inodeに2つのハードリンクがあり、パスのデフォルトのファイルコンテキストが異なる場合、結果のファイルコンテキストは与えられたパスによって異なりますrestorecon。ファイルシステム全体のラベルを再指定すると、どのようなコンテキストが得られますか?決定論的ですか?この方法で処理できますか?これはいいですか?

答え1

restoreconいいえ扱うシンボリックリンクはファイルと同様に機能します。 ~によるとマニュアルページ(少し古いですが、出発点として非常に便利です):

ノート
Restoreconはシンボリックリンクをたどりません。

これはバグレポートで観察されました。バグ825221:Restoreconはシンボリックリンクのカスタムルールを無視します。、以下の関連説明が含まれています。

  • ダニエル・ウォルシュ2012-05-29 13:54:13 EDT

    F17でこの問題を解決しました。

  • ダニエル・ウォルシュ2012-08-15 14:01:52 EDT

    Restoreconはファイルの物理パスを実行するため、ファイルを物理パスに変換します。これは、ファイルのラベルが誤って指定されたシンボリックリンク攻撃を防ぐために行われます。

  • カレルスロート 2012-08-23 06:14:05 EDT

    RHEL6.3とFedora 17でテストしたばかりです。

    RHEL6では、Restoreconはシンボリックリンクのコンテキストを復元しません(シンボルリンクが実際のプロジェクトの場合)。 Fedora 17では、コンテキストが復元されました。私はこれが#c6で言及されている問題だと思います。

    ダン、この問題が解決されているか確認していただけますか?ありがとうございます。

  • ミロスラフ・グレーフェル2012-08-23 09:59:41 EDT

    わかりました。ポリシーでエラーが検出されました。 RHEL6 には次の規則はありません。

    allow setfiles_t file_type : lnk_file { read getattr relabelfrom relabelto } ;

    私たちはただ

    allow setfiles_t file_type : lnk_file { getattr relabelfrom relabelto } ;

    selinux-policyだから私はこのエラーをコンポーネントに切り替えました。

後で (2015)シンボリックリンクでRestoreconを使用することに関するいくつかの質問、Stephen Smalleyは次のように述べています。

はい、異なるinodeとして解釈されます(Symlinkはターゲットに関係なくLinux上の独自のファイル/inodeです)。シンボリックリンクSELinuxラベルは、ターゲット(ターゲットラベルに基づいて制御される)ではなくシンボリックリンクへのアクセス(つまり、リンク解除、名前変更、または読み取り機能)のみを制御します。

したがって...追加の規則がない限り、シンボリックリンク(ほとんど)権限に拘束されないターゲットあなたが興味を持っているもの。

関連情報