我能否得到有关如何在具有以下功能的 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*
- 我是否总是需要执行该操作
chcon -t samba_share_t /folder
才能使其正常工作,或者我可以只执行该操作吗semanage
? - 我是否只需要
chcon -t samba_share_t
列出要列出的文件夹/etc/samba/smb.conf
,还是需要标记 samba 共享文件夹下的每个子文件夹和文件? - 同样,对于
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 文档。