-1-Samba服务攻略建设指南1安装Samba服务1.1Samba所需软件samba-*.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号samba-client-*.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具samba-common-*.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包samba-swat-*.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等哈)来对Samba服务器进行图形化管理1.2Samba的安装建议在安装Samba服务之前,使用rpm-qa命令检测系统是否安装了Samba相关性软件包:rpm-qa|grepsamba如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。安装Samba主程序包:rpm-ivhsamba-*.rpm安装Samba客户端工具:rpm-ivhsamba-client-*.rpm安装Samba通用工具和库文件:rpm-ivhsamba-common-*.rpm现在我们再来安装Samba图形化管理工具:rpm-ivhsamba-swat-*.rpm现在我们看到Samba图形化管理工具安装成功了哈~所有软件包安装完毕之后,我们可以使用rpm命令进行查询:rpm-qa|grepsamba2Samba常规服务器配置在Samba服务安装完毕之后,并不是直接可以使用Windows或Linux的客户端访问Samba服务器哈,我们还必须对服务器进行设置,下面需要做的操作就是说我们要告诉Samba服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项哈,比如添加对共享目录内容的简单描述信息和访问权限等具体设置。作为我们Linux系统工程师了解及熟悉Samba服务器的搭建流程是至关重要滴。基本的Samba服务器的搭建流程主要分为四个步骤:[1]、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。[2]、在smb.conf文件中指定日志文件名称和存放路径。[3]、设置共享目录的本地系统权限。[4]、重新加载配置文件或重新启动smb服务,使用配置生效为了更好地理解设定流程中每一步的作用,下面通过一个图例进行讲解Samba工作流程:---------(1)-------------------(2)----------smb.conf主配置文件[客户端][Samba服务器]--------(4)--------------------(3)----------日志文件(1)客户端请求访问Samba服务器上的Share共享目录。-2-(2)Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。(3)Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都是需要我们设置。(4)如果客户端满足访问权限设置,则允许客户端进行访问。对于Samba服务器来说,其主配置文件smb.conf记录了共享的目录列表。比如share目录,temp目录等。对于每个共享目录,需要配置相应权限,服务器会根据smb.conf文件中的设置,判断客户端是否有权限访问,只有拥有权限才可以访问服务器的资源。Samba服务器同样会对用户的行为进行记录,每一次访问的信息都会记录在日志文件中,以便我们Linux管理员查询哪些客户端访问过Samba服务器。2.1主要配置文件smb.confSamba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf。打开文件:vim/etc/samba/smb.conf1、samba配置简介smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及相关信息。smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它哈。smb.conf中还有以“;”开头滴,这些都是samba配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。2、GlobalSettingsGlobalSettings设置为全局变量区域。全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效滴,该部分以[global]开始.smb.conf配置通用格式,对相应功能进行设置:字段=设定值下面我们说下[global]常用字段及设置方法:1)设置工作组或域名称工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。我们设置samba服务器的工作组为WorkGroup2)服务器描述服务器描述实际上类似于备注信息哈,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在serverstring配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了啊~我们设置samba描述信息为“CentOsFileServer”。-3-3)设置samba服务器安全模式samba服务器有share、user、server、domain和ads五种安全模式,用来适应不同的企业服务器需求。(1)share安全级别模式客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。(2)user安全级别模式客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。(3)server安全级别模式客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。(4)domain安全级别模式如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。(5)ads安全级别模式当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。3、ShareDefinitions共享服务的定义ShareDefinitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对ShareDefinitions部分进行配置。ShareDefinitions字段非常丰富,设置灵活。-4-我们先来讲下几个最常用的字段哈~1)设置共享名共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。共享名设置非常简单:[共享名]我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public2)共享资源描述网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么。格式:comment=备注信息举个例子哈,samba服务器上有个/sales目录存放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。-5-3)共享路径共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。格式:path=绝对地址路径samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。4)设置匿名访问共享资源如果对匿名访问进行设置,可以更改public字段。格式:public=yes#允许匿名访问public=no#禁止匿名访问samba服务器/share共享目录允许匿名用户访问,可以这样设置。5)设置访问用户如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用validusers字段进行设置。格式:validusers=用户名validusers=@组名我们来看下面一个例子哈,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理帐号为gm6)设置目录只读共享目录如果限制用户的读写操作,我们可以通过readonly实现哈~格式:readonly=yes#只读readonly=no#读写samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入-6-7)设置目录可写如果共享目录允许用户写操作,可以使用writable或writelist两个字段进行设置writable格式:writable=yes#读写writable=no#只读writelist格式:writelist=用户名writelist=@组名注意:[homes]为特殊共享目录,表示用户主目录。[printers]表示共享打印机。2.2Samba服务日志文件日志文件对于samba非常滴重要哈,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。在/etc/samba/smb.conf文件中,logfile为设置samba日志的字段。-7-samba服务的日志文件默认存放在/var/log/samba/中,其中samba会为每个连接到samba服务器的计算机分别建立日志文件。我们启动smb服务:/etc/rc.d/init.d/smbstart使用ls-a命令可以查看日志的所有文件。其中,当samba服务器刚刚建立好后,只有两个文件,分别是nmbd.log和smbd.log,它们分别记录nmbd和smbd进程的运行日志。nmbd.log记录nmbd进程的解析信息。smbd.log记录用户访问samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。当客户端通过网络访问samba服务器后,会自动添加客户端的相关日志。2.3Samba服务密码文件samba服务器发布共享资源后,客户端访问samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中,在客户端访问时,将用户提交资料与smbpasswd存放的信息进行比对,如果相同,并且samba服务器其他安全设置允许,客户端与samba服务器连接才能建立成功那如何建立samba帐号呢?偶在说之前先强调一点哈,samba帐号并不能直接建立滴,需要先建立Linux同名的系统帐号。比如如果我们要建立一个名为michael的samba帐号,那Linux系统中必须提前存在一个同名的michael系统帐号。samba中添加帐号命令为smbpasswd,命令格式:smbpasswd-a用户名我们来测试下,在samba服务器中添加samba帐号redking,我们建立samba帐号之前必须先添加相对应的系统帐号,使用useradd命令建立帐号redking,然后执行passwd命令为帐号redking设置密码哈~最后我们添加redking用户的samba帐号,执行smbpasswd添加帐号redking到samba配置文件中。-8-OK,Samba帐号添加完毕哈,如果我们在添加samba帐号时输入完两次密码出错:Failedtomodifypasswordentryforuseramy,就像下面这样这是因为Linux本地用户里没有amy这个用户,我们在系统里面添加一下就OK了务必要注意在建立samba帐号之前,一定要先建立一个与samba帐号同名的系统帐号。我们经过上面的设置,再次访问samba共享文件时就可以使用redking或amy帐号访问了。注意:解决/etc/samba目录下没有smbpasswd文件原因: