为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两中不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大的方便,本章将以Redhat 5为例,简要介绍如何在Linux操作系统上搭建Samba服务器,本章只对Samba的安装及配置过程进行简要讲解。
1. 服务查询默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了让大家对整个过程有一个完整的了解,在此先将这部分卸载掉。
可以在“/”下输入命令rpm –qa samba*,或者rpm –qa |grep samba,默认情况下可以查到两个已经存在的包:samba-client-3.0.33-3.7.el5samba-common-3.0.33-3.7.el5用rpm –e将两个包卸载掉。
对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为rpm –e –f –nodeps samba-common-3.0.33-3.7.el5,这样可以将此包顺利卸载。
2. 安装Sambaa) 挂载系统安装盘使用命令mount /dev/cdrom /mnt/cdrom完成系统安装盘的挂载,完成之后进入/mnt/cdrom/Server,使用命令find samba*查询和samba服务相关的rpm包,可以查到如下4条记录:[root@localhost /]# rpm -qa |grep sambasamba-client-3.0.33-3.7.el5samba-3.0.33-3.7.el5samba-common-3.0.33-3.7.el5samba-swat-3.0.33-3.7.el5samba-3.0.33-3.7.el5.i386.rpm:为Samba服务的主程序包。
后面的数字为此包的版本号,要搭建Samba服务器,必须安装此软件包;samba-client-3.0.33-3.7.el5.i386.rpm:为连接服务器和连接网上邻居的客户端的Samba客户端工具;samba-common-3.0.33-3.7.el5.i386.rpm:存放通用的工具和库文件,通常此包必须安装;samba-swat-3.0.33-3.7.el5.i386.rpm:为服务器图形化管理工具,此包安装完成之后,用户可以通过IE或其它浏览器来对Samba服务器进行图形化管理。
b) 安装Samba服务包对于上面查询出来的4个Samba服务安装包进行逐一安装。
如果直接用rpm –ivh安装samba-3.0.33-3.7.el5.i386.rpm包,将会报错,提示如下:[root@localhost Server]# rpm -ivh samba-3.0.33-3.7.el5.i386.rpmwarning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 error: Failed dependencies:perl(Convert::ASN1) is needed by samba-3.0.33-3.7.el5.i386samba-common = 0:3.0.33-3.7.el5 is needed by samba-3.0.33-3.7.el5.i386这是因为包之间存在依赖关系,所以正确安装方式应该是:[root@localhost Server]# rpm -ivh -f --nodeps samba-3.0.33-3.7.el5.i386.rpmwarning: samba-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%]1:samba ########################################### [100%]同理,另外三个包也采用同样的方式进行安装:[root@localhost Server]# rpm -ivh -f --nodeps samba-client-3.0.33-3.7.el5.i386.rpmwarning: samba-client-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing... ########################################### [100%]1:samba-client ########################################### [100%][root@localhost Server]# rpm -ivh -f --nodeps samba-common-3.0.33-3.7.el5.i386.rpmwarning: samba-common-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing... ########################################### [100%]1:samba-common ########################################### [100%][root@localhost Server]# rpm -ivh -f --nodeps samba-swat-3.0.33-3.7.el5.i386.rpmwarning: samba-swat-3.0.33-3.7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing... ########################################### [100%]1:samba-swat ########################################### [100%]四个包安装完成之后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了。
另外,必须保证系统安装了xinetd服务包,如果没有,需要自行安装。
使用命令rpm –ivh xinetd-2.3.14-10.el5.i386.rpm。
3. 配置smb.conf文件Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,该文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。
Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放到日志文件中。
下面简要介绍smb.conf配置文件的内容,用vi /etc/samba/smb.conf打开该配置文件,可以看到该配置文件按照功能不同分成了三部分:a) 配置项说明这里主要对smb.conf文件的作用及相关信息进行简要说明,以“#”、“;”开头的行都是Samba的解释信息以及格式规范,默认是不生效的,可以通过去掉前面的符号来进行设置并使之生效。
b) 全局设置全局设置区是从[global]行开始,主要完成一些对所有共享资源都生效的设置,比较有用的设置具体如下:# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can# specifiy it as a per share option as well#workgroup = MYGROUPserver string = Samba Server V ersion %v; netbios name = MYSERVER; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24; hosts allow = 127. 192.168.12. 192.168.13.其中,“workgroup = MYGROUP”行可以完成对samba服务器所在工作组的设置;server “string = Samba Server V ersion %v”行可以对服务器的描述进行设置,这主要用途是通过不同的描述,可以使用户能够对工作组中不同的Samba服务器进行区分。
c) Samba安全模式以“Standalone Server Options”行开始为Samba服务器的安全级别设置区域,如下:# ----------------------- Standalone Server Options ------------------------## Security can be set to user, share(deprecated) or server(deprecated)## Backend to store user information in. New installations should# use either tdbsam or ldapsam. smbpasswd is available for backwards# compatibility. tdbsam requires no further configuration.security = userpassdb backend = tdbsam其中,“security = user”为系统默认的安全级别,在Samba服务器中,为了适应不同企业的安全需求,共有五种安全级别,分别是:1) share模式:不用进行权限匹配检查即可访问共享资源,安全性比较差;2) user模式:需要对用户名和密码进行验证,通过后才能访问共享资源,具有一定的安全性;3) server模式:通过指定的服务器对用户名和密码进行验证,如果不通过,客户端会用user 级别访问;4) domain模式:domain级别的Samba服务器只作为域的成员客户端加入Windows域中,由Windows域控制器来完成对用户名和密码的验证;5) ads模式:如果Samba服务器以ads方式加入Windows域中,将具备domian级别的所有功能,并且可以完成对用户名和密码的验证工作。