SELinux导致的samba匿名访问配置问题

来源:互联网 发布:地理信息大数据 编辑:程序博客网 时间:2024/04/30 18:58

刚刚配好一个CentOS+Nginx+PHP+MySQL的虚拟机,为了实现Linux虚拟机和Windows的文件共享,准备在虚拟机上安装Samba服务并配置为匿名访问。以前从没接触过SELinux,没想到它也能影响到文件夹的访问权限,通过今天这一天的折腾,又学到了一些新东西,呵呵。下面记录一下这一天折腾的过程。

先是使用yum安装好Samba,并修改好配置文件后,共享文件夹不能匿名访问。一直报错:

\\192.168.128.128\phpdoc 无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有权限。 找不到网络名

以下为我用testparm /etc/samba/smb.conf得到的精简后的Samba配置:

[global] server string = Elmer Zhang's Samba Server security = SHARE passdb backend = tdbsam load printers = No cups options = raw[phpdoc] comment = phpdoc folder path = /home/elmerzhang/phpdoc write list = +staff read only = No guest ok = Yes

最后从Samba官方网站查配置手册,把配置一项项仔细检查,仍然查不出任何问题。无奈之下只好上Chinaunix论坛求助。

先是有人提出是目录权限问题,可以把path换成/tmp来测试。赶紧试验了一下,果然,path换成/tmp后可以匿名访问。确认是目录权限问题。

但是,phpdoc文件夹的权限已经设成了777,为什么还是不能访问呢?继续在论坛求助,有人提示是SELinux安全限制的原因,setenforce 0试试。

试了一下setenforce 0,仍然权限不够。怀疑是phpdoc在用户目录下的原因,把phpdoc移到var下,再测试,共享文件夹终于可以访问了。

但是使用setenforce 1恢复enforce设置之后,又提示权限不足了。看来每个文件夹都可以拥有属于自己的SELinux权限的,Google了一下,chcon可以改变文件夹的SELinux属性。最后通过

chcon system_u:object_r:public_content_t /var/phpdoc -R

设置phpdoc的SELinux属性之后,终于一切正常了。

原创粉丝点击