RHEL6.3配置文件共享(3) Samba服务之一

咱们前面介绍的NFS服务只能在Linux系统之间实现文件共享,可是企业网络中的绝大多数客户端都是使用Windows系统,那么咱们可否在一台安装有Linux系统的服务器上设置文件共享,而后做为文件服务器提供给网络中的Windows客户端访问呢?这就要用到Samba服务。linux

Samba服务的主要功能就是实现Linux系统和Windows系统之间的互访,既能够在Windows客户端上访问Linux服务器上的文件共享,也能够在Linux客户端上访问Windows服务器上的文件共享,于是相比NFS服务更具备实践意义。vim

Samba服务基于SMB服务消息块协议和CIFS通用互联网文件系统协议,Samba服务对应的进程有2个:安全

095017192.jpg

文件共享功能主要是由smbd进程提供的,nmbd进程主要提供主机名称解析功能,也就是令客户端能够经过计算机名的方式去访问服务端。咱们主要考虑的是smbd进程,它对应的进程服务名为smb。服务器

Samba服务默认并无安装,因此咱们要先执行“yum install samba”命令安装服务。
安装完成后,启动服务,并设为永久启动。
[root@localhost ~]# service smb start
启动 SMB 服务:                                            [肯定]
[root@localhost ~]# chkconfig smb on
网络


Samba服务的主配置文件为/etc/samba/smb.conf,该文件中的内容比较多,其中大可能是以“#”开头的注释行,以及以“;”开头的配置样例行。样例行是对配置内容的举例,用户能够参考样例行进行配置。不管是注释行仍是样例行,Samba服务器都将予以忽略。
使用vim编辑器打开该文件,能够发现其中主要包括三部份内容:
【global】全局设置:这部分配置项的内容对整个Samba服务器有效。编辑器

全局配置中的主要设置项目:ide

101806841.jpg

设置Samba服务器所在的工做组以及对工做组的描述信息。当在Windows客户端上经过网上邻居的方式访问文件共享时,才须要用到工做组,咱们如今已经不多去使用网上邻居了,因此这部分信息如何设置都无所谓。测试

102210321.jpg

这部分是用来设置Samba服务器的日志存放位置以及日志文件大小,通常无需改动。3d

102325252.jpg

security用来设置安全级别,passdb backend用来设置用户密码存放位置。rest

其中security是全局设置中最重要的一个设置项目,主要有如下几种安全级别:

102546378.jpg

安全级别中比较经常使用的是share和user。

 

除了全局设置以外,另外两部分是对用户主目录和打印机的默认共享设置。

102916684.jpg

[homes]部分是对用户主目录的默认共享设置,也就是说Samba服务器默认将全部用户的主目录都设为了共享。当在客户端以Samba服务器中某个系统用户的身份登陆时,就会看到本身的主目录,而且具备写入权限。固然每一个用户只能看到本身的主目录,别人的主目录是没法看到的。

[printers]部分是打印机的默认共享设置,若是系统中并无安装打印机,那么能够将这部份内容注释掉,或者无需理会。


下面咱们来建立一个最简单的匿名共享,即全部客户端无需进行身份验证,直接就能够访问共享文件。

首先建立共享目录,并在其中放一个测试文件:
[root@localhost ~]# mkdir /home/share
[root@localhost ~]# echo ‘hello,world!’ > /home/share/hello.txt
而后修改配置文件:
[root@localhost ~]# vim /etc/samba/smb.conf
首先在【global】全局设置中设置“security = share”,容许匿名访问。

110201282.jpg

而后按“G“键将光标移动到文件末尾,在这里提供了一个设置范例:

104101524.jpg

咱们能够按照这个范例来设置要共享的目录:

104412961.jpg

对设置项目的解释:

  • [share]:共享名,可自由定义。

  • comment:对共享的描述信息,可自由定义。

  • path:共享目录的路径,必须为绝对路径。

  • public:是否容许全部用户访问。

  • writable:是否容许写入。

范例中倒数第二行的printable,是指是否须要提供打印共享,这个通常无需设置。

范例中的最后一行write list,是指容许写入的用户列表。因为咱们设置了拒绝写入,因此这一项也不需设置。

设置完成后,保存退出,而后重启smb服务生效。
[root@localhost ~]# service smb restart


而后咱们在另外一台Windows客户端上进行访问测试,输入Samba服务器文件共享的UNC路径:

105323500.jpg

但此时却发现虽然能够匿名访问,并能够看到share共享目录,但却没法看到其中的内容,这是因为Samba服务器上的SELinux致使的,关于SELinux的配置咱们也放到之后再说,这里先将Selinux关闭,也就是将其改成许可模式。[root@localhost ~]# setenforce 0[root@localhost ~]# getenforcePermissive而后在客户端再次测试,就能够正常访问了。