samba – SELinux创建自定义角色

我有一个通过Samba共享的文件夹,以及一个Docker容器,我希望通过将它作为卷添加到Docker容器来访问所述文件夹(是的,我知道这不是可移植的).

SELinux阻止容器访问该文件夹,因为该文件夹及其内容标记为samba_share_t,而不是svirt_sandBox_file_t

我知道smbd_t域可以访问许多SELinux标签(例如httpd_sys_content_t,虽然sesearch -s smbd_t –allow提供了完整列表),但是svirt_sandBox_file_t不是其中之一.

我看到了解决这个问题的几种方法

>通过网络从容器访问samba共享(不可取,因为这需要在容器中安装samba,并且存在网络开销)
>将文件夹及其内容重新标记为svirt_sandBox_file_t(这会阻止Samba访问该文件夹)
>将文件夹及其内容重新标记为public_content_rw_t(但也可以访问许多其他我不想访问此文件夹的服务)
>创建一个策略,让svirt_lxc_net_t访问samba_share_t标签(由audit2allow生成,但这使得任何容器都可以访问标记为samba_share_t的任何文件/文件夹)

我能想到的另一个选择是创建我自己的SELinux角色,它有自己的标签,只能访问Samba和svirt(我之前没有做过,但我愿意尝试).

在这里错过了什么吗?有更简单的方法吗?

解决方法

我会去添加规则以允许samba写入svirt_sandBox_file_t.因为您希望允许samba将内容上载到容器. samba是否只需要阅读内容,然后只需添加允许规则即可实现.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...