Answers:
首先,您可以使用ls -Z使用ls查看事物的上下文
[root@servername www]# ls -dZ /var/www
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t /var/www
其次,有两个选项可让Samba和Apache访问同一目录。
简单的方法是通过以下方式仅允许samba读/写访问:
setsebool -P samba_export_all_rw 1
它很简单,容易,并且不会与SELinux的任何怪异属性混为一谈。
如果您担心Samba具有对所有目录的完全访问权限,而只想更改/ var / www,请尝试:
chcon -t public_content_rw_t /var/www
setsebool -P allow_smbd_anon_write 1
setsebool -P allow_httpd_anon_write 1
这将允许Samba和Apache对具有public_content_rw_t上下文的任何目录进行写访问。请注意,chcon仅修改/ var / www。在/ var / www下创建的任何新目录都将是public_content_rw_t,但不会是/ var / www / html或/ var / www / manual等现有目录。如果要更改所有内容,请在chcon中添加-R:
chcon -R -t public_content_rw_t /var/www
您可以浏览此CentOS Wiki页面,以获得有关其他SELinux布尔值的提示。
chcon -t public_content_rw_t /mnt/share/webroot(/.*)?
chcon -t public_content_rw_t /mnt/share
setsebool -P ftpd_full_access=1
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(/.*)?'
restorecon -R /var/www
setsebool -P allow_smbd_anon_write 1