特定のSELinux "fcontext"を使用してファイルシステム内のすべてのファイルを見つけて一覧表示する方法

特定のSELinux "fcontext"を使用してファイルシステム内のすべてのファイルを見つけて一覧表示する方法

SELinuxは、特定のファイルコンテキスト()でマークされたファイルシステム内のすべてのファイルをsetools見つけるために使用する必要があるコマンド(おそらく)に関する情報を見つけることができません。fcontext


今私はできます手動ファイルとそのファイルをfcontext一覧表示し、表示/etc/selinux/targeted/contexts/filesしたい特定のコンテンツを一覧表示しますgrepfcontext

[root@FedPadSSD files]# cat file_contexts |grep ifconfig_exec_t
/bin/ip --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ip        --      system_u:object_r:ifconfig_exec_t:s0
/sbin/tc        --      system_u:object_r:ifconfig_exec_t:s0
/usr/bin/ip     --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ip    --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/tc    --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ethtool   --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ifconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/iwconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/mii-tool  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ethtool       --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ifconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iwconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/mii-tool      --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_configure     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_interface     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_internal_net  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_configure --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_interface --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_internal_net      --      system_u:object_r:ifconfig_exec_t:s0

これを行う際の問題は、ほとんどの場合、何かが間違っている、欠けている、または不完全なように見えることです。手動SELinuxは「データベース」(より良い言葉がない)に関連しているからです。 setoolsしたがって、システム全体の構成ファイルを使用せずに、これを実行できるパッケージまたは関連パッケージにすでに存在するものがあるかどうか疑問に思います。

答え1

semanage fcontext -l | grep whatever_exec_tおそらく、特定のコンテキストのタグルールを見つけるための最良の方法でしょう。

タグルールの代わりに現在のファイルコンテキストを取得するには、ls -ZSELinux対応のfindサポート-context <glob>テストと%Zフォーマット指定子を使用できます-printf。コンテキスト文字列全体が一致するため、<glob>ワイルドカードは型を一致させるためにのみ使用されます。私のCentos 7.3の例:

#find / -xdev -type f -context '*ifconfig_exec_t*' -printf '%-50Z%p\n'
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ip
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/ifconfig
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ethtool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/iw
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/mii-tool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/tc

答え2

配布パッケージのifconfig_selinuxマニュアルページ(Fedoraに含まれている場合)selinux戦略の開発) 次の内容をお知らせします。

   The following file types are defined for ifconfig:

   ifconfig_exec_t

   - Set files with the ifconfig_exec_t type, if you want to transition an
   executable to the ifconfig_t domain.

   Paths:
        /bin/ip,    /sbin/ip,    /sbin/tc,    /usr/bin/ip,   /usr/sbin/ip,
        /usr/sbin/tc,   /sbin/ethtool,   /sbin/ifconfig,   /sbin/iwconfig,
        /sbin/mii-tool,       /usr/sbin/ethtool,       /usr/sbin/ifconfig,
        /usr/sbin/iwconfig,    /usr/sbin/mii-tool,    /sbin/ipx_configure,
        /sbin/ipx_interface, /sbin/ipx_internal_net, /usr/sbin/ipx_config‐
        ure, /usr/sbin/ipx_interface, /usr/sbin/ipx_internal_net

ifconfig_exec_tを使用すると、ifconfig_exec_tがsesearch -all -t ifconfig_exec_tターゲットとするファイルでどの変換が行われているかを確認できます。これは、コンテキストのあるファイルを見つけるのに役立ちます。

答え3

現在、RHEL7.1では - これは常にそこにあり、逃したかどうかはわかりません。次のコマンドを実行してすべてのファイルコンテキストのリストを取得し、出力を次にパイプすることができますgrep

# semanage fcontext -l |grep ifconfig_exec_t
/bin/ip                                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ethtool                                      regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ifconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ip                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_configure                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_interface                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_internal_net                             regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iw                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iwconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/mii-tool                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/tc                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/bin/ip                                        regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ethtool                                  regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ifconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ip                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_configure                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_interface                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_internal_net                         regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iw                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iwconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/mii-tool                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/tc                                       regular file       system_u:object_r:ifconfig_exec_t:s0

答え4

findコマンドを使用すると、セキュリティコンテキストで検索できます。

たとえば、タイプ "unlabeled_t"のすべてのファイルを検索します。

find / -type f -context *unlabeled_t*

最初の部分である「find/-type f」は、システム内のすべての一般ファイルを検索するように指示します。

"-context *unlabeled_t*" フィルタは、unlabeled_t タイプのすべてのファイルを表示します。最初のユーザー/役割または最後のMLS / MCSコンテキストに興味がないため、開始と終了にワイルドカードを使用する必要があります。

関連情報