第5讲Samba服务器的管理与维护平顶山学院软件学院学习目标•通过本节内容希望您能够:熟悉Samba的相关概念掌握Samba的安装与启动掌握Samba服务器的配置方法掌握Samba服务的使用平顶山学院软件学院课程议题Samba相关概念平顶山学院软件学院samba相关概念1.Samba的基本概念Samba是一组软件包,由澳大利亚的AndewTridgell开发,使Linux支持SMB协议,是一套让Linux系统能够应用Microsoft网络通讯协议的软件。它使运行Linux系统的机器能与运行Windows系统的计算机进行文件与打印机共享。Samba的核心是SMB协议平顶山学院软件学院2.SMB(ServerMessageBlock,服务信息块)SMB协议是一个高层协议,它可以看成是局域网上的共享文件/打印机的一种协议,它可以运行异构的操作系统之间。平顶山学院软件学院3.Samba软件的功能通过使用Samba,可以实现以下功能:–把Linux系统下的文件共享给Windows系统–把Linux系统下打印机共享给Windows系统使用–在Linux系统下访问Windows系统的共享文件–在Linux系统下访问Windows系统的共享打印机平顶山学院软件学院4.Samba的工作原理让NETBIOS(Windows网络邻居的通讯协议)和SMB这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让linux计算机可以在网络邻居上被Windows计算机看到,从而实现linux和windows互通。平顶山学院软件学院Samba原理•smbd•nmbd–提供名字查询服务和网络浏览服务TCP/IPTCP/IPNetBIOSNetBIOSSMBSMBWindowsLinux文件共享平顶山学院软件学院Samba的两个守护进程:smbd和nmbdsmbd是Samba的核心,它主要提供文件系统和打印机的共享。nmbd提供解析功能,主要作用是对外发布Samba服务器所提供的服务。smbd监听139TCP端口,nmbd监听137和138UDP端口。平顶山学院软件学院课程议题Samba安装与启动平顶山学院软件学院1.Samba服务的安装Samba服务安装所需要的软件包:–samba-3.0.23-1.4.i386.rpm:Samba服务端软件,–samba-client-3.0.23-1.4.i386.rpm:Samba客户端软件–samba-common-3.0.23-1.4.i386.rpm:Samba服务器和客户端均需要的文件–samba-swat:Samba的Web配置工具平顶山学院软件学院Samba服务的安装:平顶山学院软件学院#servicesmbstart|stop|restart检查Samba是否被启动,可使用下面命令:#pstree|grepmbd或pgrepsmbdpgrepnmbd查看smb占用的端口Netstat–tlnp|grepsmb2.Samba服务的启动与停止平顶山学院软件学院Samba服务的启动:平顶山学院软件学院课程议题Samba的配置平顶山学院软件学院Samba服务的配置文件•Samba服务的配置文件主要包括:–主配置文件/etc/samba/smb.conf–密码文件/etc/samba/smbpasswd–用户映射文件/etc/samba/smbusers–存放在/var/log/samba/目录下的日志文件1.Samba服务的主配置文件smb.conf文件默认存放在/etc/samba目录中。Samba服务在启动时会读取smb.conf文件中的内容,以决定如何启动、提供服务以及相应的权限设置、共享目录、打印机和机器所属的工作组等各项细致的选项。smb.conf文件分为:全局配置(GlobalSettings)和共享定义(ShareDefinitions)两个大的部分。全局配置部分定义的参数用于定义整个Samba服务器的总体特性。共享定义部分用于定义文件及打印共享。在共享定义部分又分为很多个小节,每一个节定义一个共享文件或共享打印服务。Samba服务的主配置文件语法和语义smb.conf文件中的每一行可以表示节的名字、“参数=值”或注释。每个节都以一个包含在方括号中的节名开始。节名后是“参数=值”对,描述了节的属性和作用。节名和参数名都不区分大小写,但字符串参数值要区分大小写。语法元素说明#或;标志注释行﹨继续到下一行%变量前缀[Name]节名参数=值一个配置选项yes/no或true/false布尔值变量Samba的一个强大功能就是可以用变量转换来简化smb.conf的配置。Samba提供了一组固定变量,都以“%”作为前缀,在执行过程中可用值代替。smb.conf常用变量表如下表所示。变量说明变量说明%u当前服务的用户名%P当前服务的根目录%S当前服务名%vSamba版本%H%u的宿主目录%d当前服务进程的PID%L服务器的NetBIOS名%I客户机的IP地址%m%u客户机的NetBIOS名%g表示的用户所在组的名字Samba服务主配置文件全局配置:workgroup=WORKGROUP:设置Samba服务器所属的工作组或域名。serverstring=SambaServer:指定Samba服务器的说明信息。hostsallow=192.168.1.192.168.2.127.:设置可以访问Samba服务器的主机、子网或域。printcapname=/etc/printcap:设置打印机服务配置文件的位置。loadprinters=yes:设置是否允许加载打印机的配置文件。printing=cups:定义打印系统。guestaccount=nobody:设置默认的匿名帐号。logfile=/var/log/samba/%m.log:指定日志文件的存放位置。maxlogsize=50:指定日志文件的最大存储容量。全局配置:security=user:设置Samba服务器的安全级别,取值按照安全性由低到高为:share、user、server和domain。share:共享级别,用户不需帐户及密码即可访问Samba服务器的共享资源。user:用户只有通过了Samba服务器的身份验证之后才能访问服务资源(是Samba服务器的默认安全级别)。server:和user安全级别类似,但是检查帐户和密码的工作指定由另一台服务器完成。domain:Samba服务器加入到Windows域后,Samba服务的用户验证信息交由域控制器负责,则使用该安全级别。同时也需要设置身份验证服务器。全局配置:passwordserver=NT-Server-Name:设置提供身份验证的服务器。encryptpasswords=yes:设置身份验证中传输的密码是否加密。smbpasswdfile=/etc/samba/smbpasswd:设置提供用户身份验证的密码文件。usernamemap=/etc/samba/smbusers:指定用户映射文件。socketoptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192:提高服务器的执行效率。interfaces=192.168.12.2/24192.168.13.2/24:指定Samba服务器使用的网络接口。oslevel=33:设置Samba服务器参加主浏览器选举的优先级。domainmaster=yes:将Samba服务器定义为域的主浏览器。domainlogons=yes:如果想使Samba服务器成为Windows95等工作站的登陆服务器,使用此选项。winssupport=yes:设置是否使Samba服务器成为网络中的WINS服务器。winsproxy=yes:设置Samba服务器是否成为WINS代理。dnsproxy=no:设置Samba服务器是否通过DNS的nslookup解析主机的NetBIOS。Samba服务的主配置文件共享定义:(1)[homes]节(2)[printers]节[homes]comment=HomeDirectories//对该共享资源的描述性信息browseable=no//指定该共享资源是否可以浏览writable=yes//指定Samba客户端在访问该共享资源时,是否可以写入定义定义[printers]comment=AllPrinters//对打印机共享的描述性信息path=/var/spool/samba//指定打印队列的存储位置browseable=no//设置是否可以浏览guestok=no//设置是否可以允许guest用户访问writable=no//设置是否可以写入printable=yes//设置用户是否可以打印Samba服务的主配置文件共享定义:(3)[public]节在smb.conf文件的共享定义部分除了上面的内容之外,还有其他的很多用户自定义的节。除了homes节之外,在Windows客户端看到的Samba共享名称即为节的名称。常见的用于定义共享资源的参数如下表所示。[public]path=/usr/somewhere/else/public//设置共享目录的位置public=yes//设置是否允许guest用户访问onlyguest=yes//设置是否只允许guest用户访问writable=yes//设置是否可以写入printable=no//设置是否可以打印Samba服务的主配置文件smb.conf文件中常用的共享资源参数2.Samba服务的密码文件Samba服务的密码文件是/etc/samba/smbpasswd。该文件中存储的密码是加密的,无法用Vi编辑器进行编辑。默认情况下该文件并不存在,可以使用以下两种方法创建:使用smbpasswd命令添加单个的Samba帐户。使用mksmbpasswd.sh脚本成批添加Samba帐户。2.Samba服务的密码文件使用smbpasswd命令添加单个的Samba用户的格式为:smbpasswd[参数选项]用户名称常见参数选项有:-a:向smbpasswd文件中添加用户,该用户必须存在于/etc/passwd文件中。-x:从smbpasswd文件中删除用户。-d:禁用某个Samba帐户,但并不将其删除。-e:恢复某个被禁用的Samba用户。-n:该选项将用户的口令设置为空。-rremote-machine-name:该选项允许用户指定远程主机。-Uusername:和“-r”连用,指定欲修改口令的用户。Samba服务的密码文件将user1用户添加到smbpasswd文件中,并显示smbpasswd文件的内容。注意:在使用smbpasswd命令添加Samba用户时,该系统用户必须存在,如果不存在,可以使用useradd命令添加。Samba服务的密码文件使用mksmbpasswd.sh脚本成批添加Samba帐户。3.Samba服务的用户映射文件用户映射通常是在Windows和Linux主机之间进行。两个系统拥有不同的用户帐号,用户映射就是将不同的用户映射成为一个用户。做了映射之后的Windows帐号,在使用Samba服务器上的共享资源时,就可以直接使用Windows帐号进行访问。默认情况下/etc/samba/smbusers文件为指定的映射文件。该文件每一行的格式如下:Linux帐户=要映射的Windows帐户列表注意:Windows中的各用户之间用空格分隔。平顶山学院软件学院•/etc/samba/smbusersWindowsSAMBAServeradministratorroot返回Samba服务的用户映射文件在Linux中的user1用户和Windows中的mlx和jyg两个用户之间建立映射。4.Samba服务的日志文件Samba服务的日志默认存放在/var/log/samba中,Samba服务为所有连接到Samba服务器的计算机建立单独的日志文件,同时也将NMB服务和SMB服务的运