我是一名 Ubuntu/Debian 用户,但是在 softraid/fakeraid 系统上安装 Ubuntu 时遇到了麻烦,因此我选择了 CentOS 5.6。
我也在一家小型网络开发公司工作,我们需要通过 samba/smb 共享我们测试服务器的 html/httpd 文件,但也允许 apache 托管它们。
所以我想知道我是否可以将我们的文件设置为 samba 和 httpd 类型?
就像是,
/usr/sbin/semanage fcontext -a -t samba_share_t,httpd_sys_content_t "/var/www/html(/.*)?"
否则我将不得不将 SELinux 转为宽容模式,而这不是我想要做的。
答案1
我刚刚意识到我完全误读了你的问题:)
如果您想允许 Samba 读取/var/www/html
,即httpd_sys_content_t
,您应该不会有问题。我不是 Samba 专家,但据我所知,Samba 在域中运行smbd_t
,所以您应该没问题:
# sesearch -s smbd_t --allow | grep httpd_sys_content
allow smbd_t httpd_sys_content_t : file { ioctl read getattr lock };
allow smbd_t httpd_sys_content_t : file { ioctl read write create getattr setattr lock append unlink link rename };
allow smbd_t httpd_sys_content_t : file { ioctl read write create getattr setattr lock append unlink link rename };
allow smbd_t httpd_sys_content_t : dir { ioctl read getattr lock search };
allow smbd_t httpd_sys_content_t : dir { ioctl read write create getattr setattr lock unlink link rename add_name remove_name reparent search rmdir };
allow smbd_t httpd_sys_content_t : dir { ioctl read write create getattr setattr lock unlink link rename add_name remove_name reparent search rmdir };
这表示 Samba 被允许读取httpd_sys_content_t
目录和文件。/var/www/html
树是 httpd_sys_content_t
。您已经尝试过了吗?
答案2
SHARING FILES
If you want to share files with multiple domains (Apache, FTP, rsync,
Samba), you can set a file context of public_content_t and public_content_rw_t.
These context allow any of the above domains to read the
content. If you want a particular domain to write to the public_con‐
tent_rw_t domain, you must set the appropriate boolean.
allow_DOMAIN_anon_write. So for samba you would execute:
setsebool -P allow_smbd_anon_write=1
例如:
semanage fcontext -a -t public_content_rw_t '/var/www/html(/.*)?'
restorecon -R /var/www/html
setsebool -P allow_smbd_anon_write 1
对于 httpd:
setsebool -P allow_httpd_anon_write=1