Restorecon 未设置使用 Semanage 创建的 fcontext

Restorecon 未设置使用 Semanage 创建的 fcontext

我认为我对如何永久更改一个文件的上下文的理解存在差距。读完后https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/selinux_users_and_administrators_guide/index#sect-Security-Enhanced_Linux-SELinux_Contexts_Labeling_Files-Persistent_Changes_semanage_fcontext,我认为我应该能够为文件设置上下文,然后restorecon将使用它而不是该文件的任何selinux策略。

但是,我看到一个restorecon设置了这个文件(位于我的主目录中),将类型恢复为默认类型(从其父目录继承),如下所示:

 ~> sudo semanage fcontext -C -l
SELinux fcontext                                   type               Context

pretenddir/pretendfile                             all files          system_u:object_r:samba_share_t:s0 
~> sudo restorecon pretenddir/
~> ls -Z pretenddir/
unconfined_u:object_r:user_home_t:s0 pretendfile
~> sudo chcon -v --type=samba_share_t pretenddir/pretendfile 
changing security context of 'pretenddir/pretendfile'
~> ls -Z pretenddir/
unconfined_u:object_r:samba_share_t:s0 pretendfile
~> sudo restorecon pretenddir/pretendfile
~> ls -Z pretenddir/
unconfined_u:object_r:user_home_t:s0 pretendfile

我缺少什么?

答案1

运行命令时我没有使用完整路径semanage

我应该这样做:
# semanage fcontext -a -t samba_share_t /home/christy/pretenddir/pretendfile

代替:
# semanage fcontext -a -t samba_share_t pretenddir/pretendfile

相关内容