selinux samba samba_share_t 和 chcon 与 semanage fcontext

selinux samba samba_share_t 和 chcon 与 semanage fcontext

我能否得到有关如何在具有以下功能的 RHEL/CENTOS 7 Linux 服务器上正确设置 samba 文件夹共享的说明:selinux 强制执行

SELinux 要求文件具有扩展属性来定义文件类型。策略控制守护进程对这些文件的访问权限。如果您想共享主目录以外的文件,这些文件必须标记为 samba_share_t。因此,如果您创建了一个特殊目录 /var/eng,则需要使用 chcon 工具来标记该目录。

要使此更改永久化(重新标记后仍然有效),请使用 semanage 命令将更改添加到文件上下文配置

chcon -t samba_share_t /data


semanage fcontext -a -t samba_share_t /data

     or

semanage fcontext -a -t samba_share_t /data*
  1. 我是否总是需要执行该操作chcon -t samba_share_t /folder才能使其正常工作,或者我可以只执行该操作吗semanage
  2. 我是否只需要chcon -t samba_share_t列出要列出的文件夹/etc/samba/smb.conf,还是需要标记 samba 共享文件夹下的每个子文件夹和文件?
  3. 同样,对于semanage fcontext -a -t samba_share_t,我是否仅将其应用于指定为共享的单个文件夹/etc/samba/smb.conf,或者是否要求将其应用于 samba 共享文件夹下的每个文件和子文件夹,如果是这样,如何完成?

答案1

semanage fcontext修改文件上下文数据库。当重新标记文件系统以及使用 .restore 文件上下文时,会查询数据库restorecon。添加条目不会应用新上下文。使用 所做的更改chcon会直接应用,但不会添加到文件上下文数据库中,并且不会保留restorecon或重新标记文件系统。

当您使用 添加新路径到文件上下文数据库时semanage fcontext,应用新上下文的最简单方法是使用restorecon。您可能想要使用模式,例如/data(/.*)?还包含具有相同规则的文件和子目录。restorecon然后可以与递归选项一起使用来重新标记现有文件。

默认情况下,新文件继承父文件夹的文件上下文,除非策略中存在使用自定义上下文创建新文件的特定规则。

如果/data是一个单独的分区,您也可以使用设置文件上下文上下文挂载。如果使用挂载选项设置文件上下文,则无法修改文件上下文,并且只能有一个文件上下文,但不需要文件系统修改(restorecon/重新标记),并且允许将文件上下文设置为不支持扩展属性的文件系统。

有关更多详细信息和示例,您可以查看RHEL 文档

相关内容