![selinux 目录的多种类型](https://linux22.com/image/691753/selinux%20%E7%9B%AE%E5%BD%95%E7%9A%84%E5%A4%9A%E7%A7%8D%E7%B1%BB%E5%9E%8B.png)
对于新部门,我创建了一个新的挂载点 /dept/dev,这里目前有 2 个目录:samba 和 svn,因此我们有:
unconfined_u:object_r:samba_share_t:s0 /dept/dev/samba/*
unconfined_u:object_r:svnserve_content_t:s0 /dept/dev/svn/*
(/dept 和 /dept/dev 也是“samba_share_t”,因为它是先创建的)
samba 运行良好,但 svn 不行:
AVC avc: denied { search } for pid=7126 comm="svnserve" name="/" dev="sdb1" ino=512 scontext=system_u:system_r:svnserve_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=dir permissive=0
(我认为上面的“名称”是它尝试搜索的目录?)
似乎因为上级目录是 samba_share_t,所以下级目录不能是 svnserve_content_t ?如果这是正确的,我该如何实现?我需要将 /dept 和 /dept/dev 设为 public_t 吗?
答案1
您需要告诉 SELinux 需要/dept/svn/*
。svnserve_content_t
您可以通过添加合适的正则表达式来实现...
这
semanage fcontext -a -t svnserve_content_t "/dept/svn(/.*)?"
restorecon -rv /dept/svn
应该做你想做的事。