我认为我对如何永久更改一个文件的上下文的理解存在差距。读完后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