Samba服务攻略建设的指南_第1页
Samba服务攻略建设的指南_第2页
Samba服务攻略建设的指南_第3页
Samba服务攻略建设的指南_第4页
Samba服务攻略建设的指南_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WORDPAGE- 45 - / NUMPAGES45Samba服务攻略建设指南1 安装Samba服务 1.1 Samba所需软件 samba-*.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号samba-client-*.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具samba-common-*.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包samba-swat-*.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等哈)来对Samba服务器进行图形化管理1.2 Samba

2、的安装 建议在安装Samba服务之前,使用rpm -qa命令检测系统是否安装了Samba相关性软件包:rpm -qa |grep samba如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。安装Samba主程序包:rpm -ivh samba-*.rpm安装Samba客户端工具:rpm -ivh samba-client-*.rpm安装Samba通用工具和库文件:rpm -ivh samba-common-*.rpm现在我们再来安装Samba图形化管理工具:rpm -ivh samba-swat-*.rpm现在我们看到Samba图形化管理工具安装成功了哈所有软件包安装完

3、毕之后,我们可以使用rpm命令进行查询:rpm -qa | grep samba2 Samba常规服务器配置 在Samba服务安装完毕之后,并不是直接可以使用Windows或Linux的客户端访问Samba服务器哈,我们还必须对服务器进行设置,下面需要做的操作就是说我们要告诉Samba服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项哈,比如添加对共享目录容的简单描述信息和访问权限等具体设置。作为我们Linux系统工程师了解与熟悉Samba服务器的搭建流程是至关重要滴。 基本的Samba服务器的搭建流程主要分为四个步骤:1、编辑主配置文件smb.conf,指定需要共享的目录,并为

4、共享目录设置共享权限。2、在smb.conf文件中指定日志文件名称和存放路径。3、设置共享目录的本地系统权限。4、重新加载配置文件或重新启动smb服务,使用配置生效为了更好地理解设定流程中每一步的作用,下面通过一个图例进行讲解Samba工作流程:(1) (2)smb.conf主配置文件客户端 Samba服务器 (4) (3)日志文件(1)客户端请求访问Samba服务器上的Share共享目录。(2) Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。(3)Samba服务器会将本次访问信息记录在日志文件之中,日

5、志文件的名称和路径都是需要我们设置。(4)如果客户端满足访问权限设置,则允许客户端进行访问。对于Samba服务器来说,其主配置文件smb.conf记录了共享的目录列表。比如share目录,temp目录等。对于每个共享目录,需要配置相应权限,服务器会根据smb.conf文件中的设置,判断客户端是否有权限访问,只有拥有权限才可以访问服务器的资源。Samba服务器同样会对用户的行为进行记录,每一次访问的信息都会记录在日志文件中,以便我们Linux管理员查询哪些客户端访问过Samba服务器。2.1 主要配置文件smb.confSamba的配置文件一般就放在/etc/samba目录中,主配置文件名为sm

6、b.conf。打开文件:vim /etc/samba/smb.conf1、samba配置简介smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用与相关信息。smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它哈。smb.conf中还有以“;”开头滴,这些都是samba配置的格式例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。2、Global SettingsGlobal Settings设置为全局变量区域。全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效滴

7、,该部分以global开始.smb.conf配置通用格式,对相应功能进行设置:字段=设定值下面我们说下global常用字段与设置方法:1)设置工作组或域名称工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。我们设置samba服务器的工作组为WorkGroup2)服务器描述服务器描述实际上类似于备注信息哈,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在server string配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了啊我们设置samba描述信息为“CentOs File Server

8、”。3)设置samba服务器安全模式samba服务器有share、user、server、domain和ads 五种安全模式,用来适应不同的企业服务器需求。(1)share安全级别模式客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。(2)user安全级别模式客户端登录samba服务器,需要提交合法和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。 (3)server安全级别模式客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错

9、误,客户端会用user级别访问。(4)domain安全级别模式如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。(5)ads安全级别模式当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。3、Share Definitions共享服务的定义Share Definitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对Sh

10、are Definitions部分进行配置。Share Definitions字段非常丰富,设置灵活。我们先来讲下几个最常用的字段哈1)设置共享名共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。共享名设置非常简单:共享名我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public2)共享资源描述网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的容是什么。格式:comment = 备注信息举个例子哈,samba服务器上有个/sales目录存

11、放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。3)共享路径共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。格式:path = 绝对地址路径samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。4)设置匿名访问共享资源如果对匿名访问进行设置,可以更改public字段。格式:public = yes #允许匿名访问public = no #禁止匿名访问samba服务器/share共享目录允许匿名用户访问,可以这样设置。5)设置访问用户如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid us

12、ers字段进行设置。格式:valid users = 用户名valid users = 组名我们来看下面一个例子哈,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理为gm6)设置目录只读共享目录如果限制用户的读写操作,我们可以通过readonly实现哈格式:readonly = yes #只读readonly = no #读写samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入7)设置目录可写如果共享目录允许用户写操作,可以使用writable或write list两个字段进行设置wr

13、itable格式:writable = yes #读写writable = no #只读write list格式:write list = 用户名write list = 组名注意:homes为特殊共享目录,表示用户主目录。printers表示共享打印机。2.2 Samba服务日志文件日志文件对于samba非常滴重要哈,它存储着客户端访问samba服务器的信息,以与samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。在/etc/samba/smb.conf文件中,log file为设置samba日志的字段。samba服务的日志文件默认存放在/var/log/

14、samba/中,其中samba会为每个连接到samba服务器的计算机分别建立日志文件。我们启动smb服务:/etc/rc.d/init.d/smb start使用ls -a命令可以查看日志的所有文件。其中,当samba服务器刚刚建立好后,只有两个文件,分别是nmbd.log和smbd.log,它们分别记录nmbd和smbd进程的运行日志。nmbd.log记录nmbd进程的解析信息。 smbd.log记录用户访问samba服务器的问题,以与服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。当客户端通过网络访问samba服务器后,会自动添加客户端的相关日志。2.3 Samba服务

15、密码文件 samba服务器发布共享资源后,客户端访问samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中,在客户端访问时,将用户提交资料与smbpasswd存放的信息进行比对,如果一样,并且samba服务器其他安全设置允许,客户端与samba服务器连接才能建立成功那如何建立samba呢?偶在说之前先强调一点哈,samba并不能直接建立滴,需要先建立Linux同名的系统。比如如果我们要建立一个名为michael的samba,那Linux系统中必须提前存在一个同名的mic

16、hael系统。samba中添加命令为smbpasswd,命令格式:smbpasswd -a 用户名我们来测试下,在samba服务器中添加sambaredking,我们建立samba之前必须先添加相对应的系统,使用useradd命令建立redking,然后执行passwd命令为redking设置密码哈最后我们添加redking用户的samba,执行smbpasswd添加redking到samba配置文件中。OK,Samba添加完毕哈,如果我们在添加samba时输入完两次密码出错:Failed to modify password entry for user amy,就像下面这样这是因为Linu

17、x本地用户里没有amy这个用户,我们在系统里面添加一下就OK了务必要注意在建立samba之前,一定要先建立一个与samba同名的系统。我们经过上面的设置,再次访问samba共享文件时就可以使用redking或amy访问了。注意:解决/etc/samba目录下没有smbpasswd文件原因:samba启用了tdbsam验证。解决:smb.conf文件中注释掉passdb backend = tdbsam 一行,加上smb passwd file = /etc/samba/smbpasswd,然后保存退出。这样再建立用户就产生了/etc/samba/smbpasswd文件了。 使用cat命令查看s

18、mbpasswd文件滴容哈:cat /etc/samba/smbpasswd2.4 Samba的启动与停止 1)samba服务的启动service smb start 或 /etc/rc.d/init.d/smb start2)samba服务的停止service smb stop 或 /etc/rc.d/init.d/smb stop3)samba服务的重启service smb restart 或 /etc/rc.d/init.d/smb restart4)samba服务配置重新加载service smb reload 或 /etc/rc.d/init.d/smb reload注意:Linu

19、x服务中,当我们更改配置文件后,一定要记得重启服务哈,让服务重新加载配置文件,这样新的配置才可以生效哈5)自动加载samba服务chkconfig我们可以使用chkconfig命令自动加载smb服务: chkconfig -level 3 smbon #运行级别3自动加载chkconfig -level 3 smb off #运行级别3不自动加载3 举例3.1 share服务器实例与详解上面已经对samba的相关性配置文件讲了个大概哈,现在我们通过实例来掌握一下samba具体使用流程来搭建samba服务器。如果公司现在用一个工作组Workgroup需要添加samba服务器作为文件服务器哈,并发

20、布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。我们分析下哈,这个案例属于samba的基本配置,我们可以实用share安全级别模式,既然允许所有员工访问,则需要为每个用户建立一个samba,那么如果公司拥有大量用户呢?1000个用户,100000个用户,一个个设置会非常滴麻烦哈,我们可以通过配置security = share来让所有用户登录时采用匿名nobody访问,这样实现起来非常简单1) 修改samba主配置文件smb.confvim /etc/samba/smb.conf(1).设置samba服务器工作组名为Workgroup(2).添加samba服务器

21、注释信息为File Server(3).设置samba安全级别为share模式,允许用户匿名访问#= Global Settings = global # Netwrok Related Options # # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH # # server string is the equivalent of the NT De.ion field # # netbios name can be used to specify a server name not tied to the hostna

22、me # # Interfaces lets you configure Samba to use multiple interfaces # If you have multiple network interfaces then you can list the .es # you want to listen . (never omit localhost) # # Hosts Allow/Hosts Deny lets you restrict who can connect, and you can # specifiy it as a per share option as wel

23、l # workgroup = Workgroup #设置samba服务器工作组名为Workgroup server string = File Server #添加samba服务器注释信息为File Server; netbios name = MYSERVER ; interfaces = lo eth0 /24 /24 ; hosts allow = 127. 192.168.12. 192.168.13. # Logging Options # # Log File let you specify where to put logs an

24、d how to split them up. # # Max Log Size let you specify the max size log files should reach # logs split per machine ; log file = /var/log/samba/%m.log # max 50KB per log file, then rotate ; max log size = 50 # Standalone Server Options # # Scurity can be set to user, share(deprecated) or server(de

25、precated) # # 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 = share #设置samba安全级别为share模式,允许用户匿名访问 ; passdb backend = tdbsam smb passwd file = /etc

26、/samba/smbpasswd # Domain Members Options # # Security must be set to domain or ads # # Use the realm option .ly with security = ads # Specifies the Active Directory realm the host is part of # # Backend to store user information in. New installations should # use either tdbsam or ldapsam. smbpasswd

27、 is available for backwards # compatibility. tdbsam requires no further configuration. #(4).设置共享目录的共享名为public(5).设置共享目录的绝对路径为/share(6).最后我们设置允许匿名访问哈设置完smb.conf后保存退出哈2)重新加载配置上面我们说过哈,Linux为了使新配置生效,需要重新加载配置,可以使用restart重新启动服务或者使用reload重新加载配置哈注意哈: 偶这里强调一下细节,重启samba服务,虽然可以让配置生效,但是restart是先关闭samba服务,再开启服务哈

28、,这样如果在公司网络运营中肯定会对客户端员工的访问造成影响,建议使用reload命令重新加载配置文件使其生效,这样不需要中断服务就可以重新加载配置哈samba服务器通过以上设置,现在用户就可以不需要输入和密码就可以直接登录samba服务器并访问public共享目录我们测试下,在/share目录下建个文件试下:touch /share/test_sharemode_samba.tar我们看下效果3.2 user服务器实例与详解上面的案例我们讲了share安全级别模式的samba服务器哈,可以实现用户方便滴通过匿名方式访问,但是如果在我们samba服务器上存在重要文件的目录,为了保证系统安全性与资

29、料性哈,我们就必须对用户进行筛选,允许或禁止相应的用户访问指定滴目录哈,这里share安全级别模式就不能满足我们这样的实际要求了。实现用户身份验证的方法很多,我们可以将安全级别模式配置为user、server、domain和ads,但是最常用的还是user安全级别模式哈,下面偶就来看下user这个安全级别模式的配置如果公司有多个部门,因工作需要,我们就会分门别类的建立相应部门的目录,并将销售部的资料存放在samba服务器的/companydata/sales/目录下,集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。我们分析下,在/companydata/sales/目录中存放有销售

30、部的重要数据,为了保证其他部门无法查看其容,我们需要将全局配置中security设置为user安全级别,这样就启用了samba服务器的身份验证机制,然后在共享目录/companydata/sales下设置valid users字段,配置只允许销售部员工能够访问这个共享目录。1)添加销售部用户和组并添加相应samba使用groupadd命令添加sales组,然后执行useradd命令和passwd命令添加销售部员工的与密码接下来为销售部成员添加相应samba2)修改samba主配置文件smb.conf(1).设置user安全级别模式(2).设置销售部共享目录为sales(3).指定共享目录为绝对

31、路径为/companydata/sales(4).设置可以访问的用户为sales组成员3)重新加载配置上个案例讲过了哈,要让修改后的Linux配置文件生效,我们就要重新加载配置。#service smb reload现在我们测试下输入销售部的与密码进行登录打开sales共享目录这样销售部成员就可以进行访问sales共享目录下的数据了4 Samba高级服务器配置 上面偶说了下samba滴常规配置哈,这些已经可以使用企业部滴资料通过网络共享并分配适当滴共享权限来管理共享目录,但这仅仅对于很多大型企业或安全要求高滴来说还是不能满足其需求哈,所以偶下面就来讲下samba滴高级服务器配置让我们搭建滴sa

32、mba服务器功能更强大,管理更灵活,我们滴数据也更安全4.1 用户账号映射前面已经说过,samba的用户信息是保存在smbpasswd文件中滴,而且可以访问samba服务器的也必须对应一个同名的系统。基于这一点,所以哈,对于一些hacker来说,只要知道samba服务器滴samba,就等于是知道了Linux系统,只要crack其samba密码加以利用就可以攻击samba服务器哈。所以我们要使用用户映射这个功能来解决这个问题用户映射这个功能需要建立一个映射关系表,里面记录了samba和虚拟的对应关系,客户端访问samba服务器时就使用虚拟来登录。1)编辑主配置文件/etc/samba/smb.c

33、onf在global下添加一行字段username map = /etc/samba/smbusers开启用户映射功能。2)编辑/etc/samba/smbuserssmbusers文件保存映射关系,其有固定滴格式:samba = 虚拟(映射)redking就是我们上面建立的samba(同时也是Linux系统),51cto与51blog就是映射滴名(虚拟),redking在我们访问共享目录时只要输入51cto或51blog就可以成功访问了,但是实际上访问samba服务器的还是我们滴redking,这样一来就解决了安全问题哈我们继续。3)重启samba服务:service smb restart

34、4)验证效果输入我们定义的映射51cto,注意我们没有输入redking哈,映射51cto滴密码和redking一样哈现在就可以通过映射浏览共享目录了注意:强烈建议不要将samba用户的密码与本地系统用户的密码设置成一样哈,可以避免非法用户使用samba登录系统非法破坏哈4.2 客户端访问控制对于samba服务器的安全性,我们已经说过可以使用valid users字段去实现用户访问控制,但是如果企业庞大,存在大量用户的话,这种方法操作起来就显得比较麻烦哈比如samba服务器共享出一个目录来访问,但是要禁止某个IP子网或某个域的客户端访问此资源,这样滴情况使用valid users字段就无法实现

35、客户端访问控制。下面我们就讲下使用hosts allow和hosts deny两个字段来实现该功能。而用好这两个字段滴关键在于熟悉和清楚它们的使用方法和作用围哈hosts allow 和 hosts deny 的使用方法1)hosts allow 和 hosts deny 字段的使用hosts allow 字段定义允许访问的客户端hosts deny 字段定义禁止访问的客户端2)使用IP地址进行限制比如公司部samba服务器上共享了一个目录sales,这个目录是存放销售部的共享目录,公司规定/24这个网段的IP地址禁止访问此sales共享目录,但是其中192.168.0.

36、24这个IP地址可以访问。先将安全级别模式由user改为share这里我们添加hosts deny和hosts allow字段hosts deny = 192.168.0. 表示禁止所有来自/24网段的IP地址访问hosts allow = 4 表示允许4这个IP地址访问当host deny和hosts allow字段同时出现并定义滴容相互冲突时,hosts allow优先。现在设置的意思就是禁止C类地址/24网段主机访问,但是允许4主机访问。测试下效果,如果是4

37、的客户端就可以正常访问如果是其他客户端滴话就是这样的效果如果想同时禁止多个网段滴IP地址访问此服务器可以这样设置hosts deny = 192.168.1. 172.16. 表示拒绝所有网段和网段的IP地址访问sales这个共享目录。hosts allow = 10. 表示允许网段的IP地址访问sales这个共享目录。注意:当需要输入多个网段IP地址的时候,需要使用“空格”符号隔开。3)使用域名进行限制我们来看这样一个例子哈,公司samba服务器上共享了一个目录public,公司规定.sale 域和.net域的客户端不能访问,并且主机

38、名为free的客户端也不能访问。hosts deny = .sale. .net free 表示禁止.sale 域和.net域与主机名为free的客户端访问public这个共享目录。注意:域名和域名之间或域名和主机名之间需要使用“空格”符号隔开。4)使用通配符进行访问控制samba服务器共享了一个目录security,规定所有人不允许访问,只有主机名为boss的客户端才可以访问。对于这样一个实例哈,我们就可以通过使用通配符的方式来简化配置。hosts deny = All 表示所有客户端,并不是说允许主机名为ALL的客户端可以访问哈常用的通配符还有“*”,“?”,“LOCAL”等。还有一种比较

39、有意思的情况,如果我们规定所有人不能访问security目录,只允许网段的IP地址可以访问,但是00与8的主机是要禁止访问滴。我们可以使用hosts deny禁止所有用户访问,再设置hosts allow允许网段主机,但当hosts deny和hosts allow同时出现而且冲突滴时候,hosts allow生效,如果这样滴话,那么允许网段的IP地址可以访问,但是00与8的主机禁止访问就无法生效了哈我们可以使用EXCEPT进行设置。host

40、s allow = 192.168.0. EXCEPT 00 8 表示允许网段IP地址访问,但是00和8除外哈hosts allow 和 hosts deny 的作用围hosts allow和hosts deny设置在不同的位置上,它们的作用围是不一样滴。如果设置在global里面,表示对samba服务器全局生效哈,如果设置在目录下面,则表只对这个目录生效。这样设置表示只有8才可以访问samba服务器,全局生效哈这样设置就表示只对单一目录security生效,只有

41、8才可以访问security目录里面的资料。4.3 设置Samba的权限 到这里我们已经可以对客户端访问进行有效的控制,但是对于能访问的客户端来说,我们还是不能灵活方便滴控制他们访问共享资源的权限,比如boss或gm这样的可以对某个共享目录具有完全控制权限,其他只有只读权限哈,这样的情况我们就可以使用write list字段来实现哈例如公司samba服务器上有个共享目录tech,公司规定只有boss和tech组的可以完全控制,其他人只有只读权限。如果只用writable字段则无法满足这个实例的要求,因为当writable = yes时,表示所有人都可以写入了哈,而当wri

42、table = no时表示所有人都不可以写入。这时我们就需要用到write list字段哈write list = boss,tech 就表示只有boss和tech组成员才可以对tech共享目录有写入权限哈(其中tech就表示tech组)。我们来看下writable和write list之间的区别:字段值描述writableyes所有都允许写入writableno所有都禁止写入write list写入权限列表列表中的允许写入4.4 Samba的隐藏共享 我们还可以使用browseable字段实现隐藏共享的功能哈比如我们要把samba上的技术部共享目录隐藏,我们可以这样设置。browseable

43、 = no表示隐藏该目录现在就看不到tech共享目录了哈如果我们直接输入 HYPERLINK file:/.88.tech 88tech就可以访问了哈在有些特殊的情况下,browseable也无法满足企业的需求,比如,samba服务器上有个security目录,此目录只有boss用户可以浏览访问,其他人都不可以访问。因为samba的主配置文件只有一个,所有访问都要遵守该配置文件的规则,如果隐藏了该目录,那么所有人就都看不到该目录了,就像上面演示的一样,要知道共享目录名称后输入 HYPERLINK file:/.88.tech 1

44、88tech才可以访问技术部资料。如果这样滴目录一多滴话,不可以叫boss去记那么多目录名称哈,那样还不被boss骂死哈_问题出在samba服务的主配置文件只有一个,而smb.conf没有提供字段允许部分人可以浏览隐藏目录的功能。那我们可以换个角度哈,既然单一滴配置文件无法实现要求,那么我们可以为不同需求的用户或组分别建立相应的配置文件并单独配置后实现其隐藏目录的功能哈,现在我们为boss建立一个配置文件,并且让其访问的时候能够读取这个单独的配置文件。(1)建立独立滴配置文件哈先为boss创建一个单独的配置文件,我们可以直接复制/etc/samba/smb.conf这个文件

45、并改名就可以了,如果为单个用户建立配置文件,命名时一定要包含用户名哈。我们使用cp命令复制主配置文件,为boss建立独立的配置文件。(2)编辑smb.conf主配置文件哈在global中加入config file = /etc/samba/smb.conf.%U,表示samba服务器读取/etc/samba/smb.conf.%U文件,其中%U代表当前登录用户。命名规与独立配置文件匹配哈(3)编辑smb.conf.boss独立配置文件编辑boss的独立配置文件smb.conf.boss,将tech目录里面的browseable = no删除,这样当boss访问samba时,tech共享目录对b

46、oss访问就是可见滴,这样主配置文件smb.conf和boss的独立配置文件相搭配就有实现其他用户访问时tech共享目录是隐藏滴,而boss访问时就是可见滴。(4)重新启动samba服务:service smb restart(5)测试效果哈现在我们以普通用户redking登录samba服务器发现以redking登录samba看不到tech共享目录哈证明tech共享目录对除boss以外的人是隐藏共享滴。现在我们以boss登录来看看哈我们发现以boss登录之后,tech共享目录自动显示了哈这样以独立配置文件的方法来实现隐藏共享对不同的可见性非常方便哈注意:目录隐藏了并不是说不共享了,只要知道共享

47、名,并且有相应权限,还是可以访问滴,就像上面演示的一样,可以输入“IP地址共享名”的方法就可以访问隐藏共享了。5 Samba客户端配置 5.1 Linux客户端访问Samba共享linux客户端访问服务器主要有两种方法1)使用smbclient命令在Linux中,samba客户端使用smbclint这个程序来访问samba服务器时,先要确保客户端已经安装了samba-client这个rpm包。smbclient可以列出目标主机共享目录列表smbclient命令格式:smbclient -L 目标IP地址或主机名 -U 登录用户名%密码当我们查看rhel5(88)主机的共享

48、目录列表时,提示输入密码,这时候可以不输入密码哈,我们直接按回车,这样表示匿名登录,然后就会显示匿名用户可以看到的共享目录列表了哈smbclient -L rhel5或者smbclient -L 88如果想使用samba相看samba服务器端共享了什么目录,我们可以加上-U参数哈,后面跟上用户名%密码。smbclient -L 88 -U boss%boss这样就显示了只有boss才显示的tech技术部共享目录。注意:不同用户使用smblient浏览的结果可能是不一样滴,这要根据服务器设置的访问控制权限而定哈我们还可以在使用smbclient命令行共

49、享访问模式浏览共享的资料哈smbclient命令行共享访问模式命令格式:smbclient /目标IP地址或主机名/共享目录 -U 用户名%密码上面已经显示了服务器上有一个tech共享目录,我们来查看一下里面的容哈另外smbclient登录samba服务器后,我们可以使用help查询所支持的命令。2)使用mount命令挂载共享目录mount命令挂载共享目录格式:mount -t cifs /目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名rootclient # mount -t cifs /88/tech /mnt/sambadata/ -o

50、username=boss%boss这表示挂载88主机上的共享目录tech到/mnt/sambadata目录下,cifs就是samba所使用的文件系统哈5.2 Windows客户端访问Samba共享 这个就比较简单了哈,我们也一直用这个访问微软的共享目录哈,上面其他也已经讲过了哈,方法就是在开始运行里面使用UNC路径直接进行访问哈也可以到网上邻居里面找,但是偶不太喜欢用这个方法,因为速度太慢哈。还是觉得在开始-运行或是直接在资源管理器或IE的地址栏里面输入UNC路径比较快哈1)在开始-运行里面使用UNC路径直接进行访问2)映射网络驱动器访问samba服务器共享目录输入te

51、ch共享目录的地址输入可以访问tech共享目录的samba和密码这时在我的电脑的网络驱动器中就可以看到映射的Z盘了哈打开Z盘就可以访问tech共享目录里面的资源。6 Samba的打印共享默认情况下,samba的打印服务是开放滴所以我们只要把打印机安装好后客户端的用户就可以使用打印机了。1)设置global配置项修改smb.conf全局配置,开启打印共享功能2)设置printers配置项使用默认设置就可以让客户端正常使用权打印机了哈,需要注意的就是printable一定要设置成yes哈,如果不设置成yes那还打什么哈path字段定义打印机队列,可以根据需要自己定制哈,另外共享打印和共享目录不一样

52、哈,安装完打印机后必须重新启动samba服务,否则客户端可能无法看到共享的打印机。如果设置只允许部分员工使用打印机,我们可以使用valid users、hosts allow或hosts deny字段来实现哈,这些在讲共享目录时已经说过了,不清楚可以再翻翻看哈下面进入samba企业实战与应用。7 Samba企业实战与应用 7.1 企业环境与需求 samba服务器目录:企业数据目录:/companydata公共目录:/companydata/share销售部目录:/companydata/sales技术部:/companydata/tech企业员工情况:总经理:gm销售部:销售部经理 redki

53、ng、员工 sky、员工 jane技术部:技术部经理 michael、员工 bill、员工 joy搭建samba文件服务器,建立公共共享目录,允许所有人访问,权限为只读,为销售部和技术部分别建立单独的目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。这是个典型的企业文件服务器案例哈。总经理 | 销售部交换机samba服务器 | 技术部7.2 需求分析对于建立公共目录public字段就可以实现匿名访问,员工只能访问本部门的共享目录,禁止访问非本部门的共享目录,我们可以通过设置目录共享字段“browseable = no”与字段“valid users”来实现其隐藏功能

54、和相应的访问权限。这样设置不能很好得解决同一目录多种需求的权限设置,所以我们需要建立独立配置文件,为每个部门建立一个组后并为每个组建立配置文件来实现隔离用户权限会比较灵活哈7.3 解决方案1)建立各部门专用共享目录使用mkdir建立需求的共享目录以便分门别类的存储相应资料。同时设置/companydata共享目录的用户权限2)添加samba服务器描述与设置smbpasswd文件默认/etc/samba/目录下没有smbpasswd文件,我们要先关闭samba的tdbsam验证。解决方法:在smb.conf文件中注释掉passdb backend = tdbsam 一行,为了指定samba用户的

55、验证我们加上这一条smb passwd file = /etc/samba/smbpasswd,然后保存退出。 HYPERLINK :/img1.51cto /attachment/200812/27/27212_12303663350v.png 3)添加用户和组先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理gm与各个员工的并加入相应的用户组。 接着使用smbpasswd命令添加samba用户呃不好意思哈gm的samba用户忘记添加了,现在补上哈4)配置smb.conf文件(1)建立单独配置文件用户配置文件使用用户名命令哈,组配置文件使用组名命令。(2)设置主

56、配置文件smb.conf这里我们配置smb.conf主配置文件,在global中添加相应字段哈,确保samba服务器的主配置文件可以调用独立的用户配置文件和组配置文件。include = /etc/samba/%U.smb.conf表示使samba服务器加载/etc/samba目录下格式为“用户名.smb.conf”的配置文件。include = /etc/samba/%G.smb.conf表示使samba服务器加载/etc/samba目录下格式为“组名.smb.conf”的配置文件。设置共享目录/companydata/share(5)设置总经理gm配置文件vim /etc/samba/gm

57、.smb.conf(6)设置销售部组sales配置文件vim /etc/samba/sales.smb.conf(7)设置技术部组tech配置文件vim /etc/samba/tech.smb.conf(8)开启samba服务service smb start(9)测试我们先用gm登录测试可以全部看到共享目录。/companydata/share目录只读注意:最好禁用RHEL5中的selinux功能,否则会出现些莫名其妙滴问题,比如下面的gm明明对共享目录sales和tech是777的权限,但就是只能创建文件却不能创建文件夹哈关闭selinux,打开selinux配置文件/etc/selinu

58、x/config设置selinux = disabled后保存退出并重启系统。 查看selinux当前状态sestatus -v现在我们就可以创建文件夹了现在我们以其他测试,就用技术部joy吧在这里技术部的员工就看不到销售部的共享目录。同时对public目录只读权限,对tech目录有读写权限。因为禁止对共享目录sales访问,就算知道了 HYPERLINK file:/.rhel5.sales rhel5sales路径也是不能访问滴8 Samba排错 1)Linux服务一般滴排错方法(1)错误信息一般仔细看下显示的错误信息,根据错误提示一般滴问题就可以判断问题出在什么地方了。(2)配置文件第2

59、个我们可以查配置文件,有时可能误操作导致配置失误,服务无常运行,我们可以通过检查配置文件来确认问题。现在很多服务的软件包有自带配置文件检查工具,我们可以通过这些工具对配置文件进行检查哈(3)日志文件如果服务出现问题,我们还可以使用tail命令来动态监控日志文件(在CLI状态下可以使用Ctrl+Alt+F1F6切换到另一个CLI文字终端下查看)。tail -F /var/log/messages2)samba服务故障排错(1)使用testparm命令检查上面偶提到软件包有自带的配置文件检查工具,我们可以使用testparm命令检测smb.conf文件的语法,如果报错,说明smb.conf文件设置

60、有错误哈,这样我们可以根据提示信息来修改主配置文件和独立配置文件。testparm /etc/samba/smb.confrootrhel5 # testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf Cant find include file /etc/samba/.smb.conf Cant find include file /etc/samba/%G.smb.conf Processing section homes Processing section printers Processi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论