SELinuxファイルコンテキスト、Restoreconは「ユーザー」コンテキストを変更しません。

SELinuxファイルコンテキスト、Restoreconは「ユーザー」コンテキストを変更しません。

matchpathconファイル(例:/usr/lib64/gconv/gconv-modules.cache)に使用すると、次のようになります。

/usr/lib64/gconv/gconv-modules.cache  system_u:object_r:lib_t:s0

しかし:

# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:lib_t:s0

したがって、ファイルに正しいコンテキストがないようです(ユーザー部分が一致しません)。ただし、restorecon -v実行時にファイルは変更されません。

私はこれを行うことができます:

# chcon -t httpd_sys_content_t /usr/lib64/gconv/gconv-modules.cache
# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0
# restorecon -v /usr/lib64/gconv/gconv-modules.cache
unconfined_u:object_r:httpd_sys_content_t:s0 -> unconfined_t:object_r:lib_t:s0

restoreconしたがって、コンテキストではなくファイルのSELinuxのみが更新されるようです。これはバグですか、それともこの動作の説明はありますか?文書(typeuserhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html)は、コンテキストが一致せず、期待どおりに変更されたファイルの回復操作を示していますuserunconfined_u->system_u

オペレーティングシステム:RedHat 7.3
SELinux:3.13.1-102.el7_3.16

ベストアンサー1

サポートケースを開いた後、私はRed Hatのドキュメントに誤解があり、マニュアルページをもっと注意深く読む必要があることを発見しました。

# man restorecon
...
If  a  file  object  does not have a context, restorecon will write the
default context to the file object's extended  attributes.  **If  a  file
object  has  a context, restorecon will only modify the type portion of
the security context.  The -F option will force a  replacement  of  the
entire context.**
...

おすすめ記事