Samba是一种自由软件包,用来让Unix系统的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连接。和windows上的网上邻居原理是一样的。通过SMB协议可以实现资源共享及打印机共享。Samba是Windows与Unix系统OS(Operating System的缩写,操作系统:windows、linux、Unix、Mac等)之间搭建起的一座桥梁,可以实现资源共享,可以像FTP这样使用。
进行Samba服务器的配置工作,基本操作过程如下:
1.安装samba服务器,命令是yum install samba;
2.修改配置文件/etc/samba/smb.conf;
3.开启服务器,命令是service smb start;
4.测试是否配置成功。
在整个安装过程中,最重要的是需了解配置文件,以及如何修改。smb.conf这个配置文件中以“#”、“;”开头的行都是Samba的解释信息以及格式规范,默认是不生效的,可以通过去掉前面的符号来进行设置并使之生效。全局设置区是从[global]行开始的,主要完成一些对所有共享资源都生效的设置;以“Standalone Server Options”行开始为Samba服务器的安全级别设置区域,在Samba服务器中,为了适应不同企业的安全需求,共有五种安全级别:share模式、user模式、server模式、domain模式和ads模式。其中share模式不用进行权限匹配检查就可以访问共享资源。在samba服务器中,我们一般需要手工设置Samba的共享文件路径、访问规则等,这个工作是在修改配置中比较重要的。
在samba服务器配置完成之后,如果不能够实现共享,可能有如下几个原因:
1.在windows操作系统输入linux服务器的ip,显示windows无法访问该ip的主机,解决方法是关闭linux服务器的防火墙,执行命令iptables –F即可;
2.可以访问到,但是需要密码,这就是安全级别的问题,即上面提到的共享安全级别,一般无特殊要求,设置为share即可。
3.在fedora中我们能看到共享,但是访问的时候会出现拒绝访问的情况,即拒绝读写,这是为什么呢?因为selinux对samba共享做了限制,我们只用把selinux中对samba的限制给解决了就行了,我们做如下设置就OK了:
#setsebool –P samba_enable_home_dirs on
#setsebool –P samba_export_all_ro on
#setsebool –P samba_export_all_rw on
我们可以用命令getsebool –a | grep samba 查看上面三项是否打开,打开的话你的共享应该就正常了。
4.如果还有权限不够的问题,即在共享目录下,可以读出文件,但是不能够创建文件,也不能向其写文件,即拷贝文件,那就是缺乏root权限,只需要在设置安全级别的地方添加如下语句即可:
security = share
guest account = root
guest ok = yes
passdb backend = tdbsam
完成上面的设置之后,重新启动samba服务器,即执行service smb restart命令,就可以成功实现共享了。