如何从一个目录复制SELinux上下文并将其应用到另一个目录?
示例使用场景是在默认/home路径之外创建新的本地用户时,如下所示:
$ sudo useradd -d /websites Tim这将创建Tim的主目录/websites,并为Tim设置正确的权限和所有权,但是它的SELinux上下文与其他用户不同,如下所示:
# ls -dZ /websites
drwx------. Tim Tim system_u:object_r:etc_runtime_t:s0 /websites我想要做的是从其他用户的SELinux目录中复制/home上下文,并将其应用到Tim的/websites目录中。
其他用户的SELinux上下文如下所示:
# ls -Z /home/
drwx------. Ben Ben unconfined_u:object_r:user_home_dir_t:s0 Ben
drwx------. Bob Bob unconfined_u:object_r:user_home_dir_t:s0 Bob
drwx------. lexy lexy unconfined_u:object_r:user_home_dir_t:s0 lexy发布于 2017-03-31 21:59:17
这只需使用-a和-e标志来完成,如下所示:
semanage fcontext -a -e /home/Ben '/websites(/.*)?' -a:加,
-e:等价
在此之后,您必须运行restorecon,如下所示:
restorecon -vvRF /websites并且将应用新的文件上下文。
-v:显示文件标签中的更改,
-R:递归,
-F:上下文的强制重置
还可以用以下方式更改SELinux文件上下文:
semanage fcontext -a -t httpd_sys_content_t '/website(/.*)?'这将不管如何分配新的文件文本。
-a:加,
-t:类型
https://unix.stackexchange.com/questions/354517
复制相似问题