为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

samba服务器配置

2018-01-05 49页 doc 1MB 44阅读

用户头像

is_014457

暂无简介

举报
samba服务器配置samba服务器配置 Samba概述 接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛,原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印, amba Server完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常甚至我们可以使用...
samba服务器配置
samba服务器配置 Samba概述 接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛,原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印, amba Server完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常甚至我们可以使用S 方便。 一、Samba相关进程 Samba服务是由两个进程组成,分别是nmbd和smbd。 nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。 smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输。 二、Samba的安装及工作原理 建议在安装Samba服务之前,使用rpm -qa命令检测系统是否安装了Samba相关性软件包: Rpm –qa | grep samba 如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。 安装Samba主程序包:rpm –ivh samba-3.0.25b-0.el5.4.i386.rpm 其他软件包的安装方法也一样 安装Samba客户端工具:rpm –ivh samba-client-3.0.25b-0.el5.4.i386.rpm 安装Samba通用工具和库文件:rpm –ivh samba-common-3.0.25b-0.el5.4.i386.rpm 其实我们一开始rpm -qa|grep samba命令查询时已经发现客户端工具和通用工具及库文件已经安装了,我们上面两步安装就可以不要执行了,最后我们安装Samba图形化管理工具: rpm –ivh samba-swat-3.0.25b-0.el5.4.i386.rpm 在Samba服务安装完毕之后,并不是直接可以使用Windows或Linux的客户端访问Samba服务器,我们还必须对服务器进行设置,下面需要做的操作就是说我们要告诉Samba服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项,比如添加对共享目录内容的简单描述信息和访问权限等具体设置。 作为我们Linux系统工程师了解及熟悉Samba服务器的搭建流程是至关重要。基本的Samba服务器的搭建流程主要分为四个步骤: [1]、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。 [2]、在smb.conf文件中指定日志文件名称和存放路径。 [3]、设置共享目录的本地系统权限。 [4]、重新加载配置文件或重新启动smb服务,使用配置生效 samba服务器的工作流程如下: (1)客户端请求访问Samba服务器上的Share共享目录。 (2)Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。 (3)Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都是需要我们设置。 (4)如果客户端满足访问权限设置,则允许客户端进行访问。 实际上,Samba服务器和我们的图书馆有点相似之处,图书馆为读者共享了图书资源,而Samba服务器共享了我们的文件数据。 图书馆会有图书分类,比如科普类、文学类等,并且图书馆会对借阅的图书做限制,拥有资格的读者,才可以借阅相应的图书,当然读者访问图书馆时,图书管理员会对他们的浏览、借阅信息进行记录。 对于Samba服务器来说,其主配置文件smb.conf记录了共享的目录列表。比如share目录,temp目录等。对于每个共享目录,需要配置相应权限,服务器会根据smb.conf文件中的设置,判断客户端是否有权限访问,只有拥有权限才可以访问服务器的资源。Samba服务器同样会对用户的行为进行记录,每一次访问的信息都会记录在日志文件中,以便我们Linux管理员查询哪些客户端访问过Samba服务器。 我们大致讲了Samba工作流程后,下面我们将对Samba具体配置过程中遇到的重要概念进行详细讲解。 三、主要配置文件smb.conf 我们先从最重要的配置文件开始,Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf。如果把Samba服务器比喻成一个公共图书馆,那么/etc/samba目录中,那么主配置文件/etc/samba/smb.conf文件,就相当于这个图书馆的图书总目录,记录着大量的共享信息和规则,所以该文件是samba服务非常重要的核心配置文件,几乎绝大部分的配置文件都在该文件中进行。此外,在smb.conf这个配置文档中本身就含有非常丰富的说明,所以在我们配置之前可以先看一下这样说明性的文字。 我们先看一下smb.conf这个文件: //先对这个文件复制个备份,然后在打开,以防止误修改原配文件。 cp /etc/samba/smb.conf /etc/samba/smb.conf.bak vi /etc/samba/smb.conf smb.conf配置文件有将近三百行内容,配置也相对比较复杂,不过我们不用担心,Samba开发组按照功能不同,对smb.conf文件进行了分段划分,条理非常地清楚。 下面我们来具体看下smb.conf的内容,smb.conf大致分为三个部分,我们来了解一下,其中我们经常要使用到的字段,我们将以实例解释 3.1 samba主要配置文件smb.conf简介?? smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及相关信息。 smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改。 smb.conf中还有以“;”开头,这些都是samba配置的格式范例,默认是不生效,可以通过去掉前面的“;”并加以修改来设置想使用的功能。 3.2 GlobalSettings?? GlobalSettings设置为全局变量区域。那什么是全局变量,全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效。这与以后我们学习的很多服务器配置文件相似。 该部分以[global]开始: smb.conf配置通用格式,对相应功能进行设置:字段 = 设定值 下面我们说下[global]常用字段及设置方法: 1)设置工作组或域名称 工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。 我们设置samba服务器的工作组为RHEL4 2)服务器描述 服务器描述实际上类似于备注信息,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在server string配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了啊,我们设置samba描述信息为“RHEL4 File Server”。 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.3 Share Definitions共享服务的定义?? Share Definitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对Share Definitions部分进行配置。Share Definitions字段非常丰富,设置灵活。 我们先来讲下几个最常用的字段 1)设置共享名 共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。 共享名设置非常简单:[共享名] 我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public 2)共享资源描述 网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么。 格式:comment = 备注信息 举个例子,samba服务器上有个/sales目录存放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。 3)共享路径 共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。 格式:path = 绝对地址路径 samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。 4)设置匿名访问 共享资源如果对匿名访问进行设置,可以更改public字段。 格式: public = yes #允许匿名访问 public = no #禁止匿名访问 samba服务器/share共享目录允许匿名用户访问,可以这样设置。 5)设置访问用户 如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用validusers字段进行设 置 格式: valid users = 用户名 valid users = @组名 我们来看下面一个例子,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部 员工和经理访问,技术部组为tech,经理帐号为gm 6)设置目录只读 共享目录如果限制用户的读写操作,我们可以通过read only实现 格式: read only = yes #只读 read only = no #读写 samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入 7)设置目录可写 如果共享目录允许用户写操作,可以使用writable或write list两个字段进行设置 writable格式: writable = yes #读写 writable = no #只读 write list格式: write list = 用户名 write list = @组名 注意: [homes]为特殊共享目录,表示用户主目录。 [printers]表示共享打印机。 四、Samba服务日志文件(选) 日志文件对于samba非常重要,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。 在/etc/samba/smb.conf文件中,log file为设置samba日志的字段。 samba服务的日志文件默认存放在/var/log/samba/中,其中samba会为每个连接到samba服务器的计算机分别建立日志文件。 我们启动smb服务:service smb start 使用ls-a命令可以查看日志的所有文件。 其中,当samba服务器刚刚建立好后,只有两个文件,分别是nmbd.log和smbd.log,它们分别记录nmbd和smbd进程的运行日志。 nmbd.log记录nmbd进程的解析信息。smbd.log记录用户访问samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。当客户端通过网络访问samba服务器后,会自动添加客户端的相关日志。 所以,我们Linux管理员可以根据这些文件来查看用户的访问情况和服务器的运行情况。另外当samba服务器工作异常时,也可以通过/var/log/samba/下的日志进行分析。 五、Samba服务密码文件 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配置文件中。 OK,Samba帐号添加完毕,如果我们在添加samba帐号时输入完两次密码出错:Failed to modify password entry for user amy,就像下面这样,这是因为Linux本地用户里没有amy这个用户,我们在系统里面添加一下就OK了~ 所以,务必要注意在建立samba帐号之前,一定要先建立一个与samba帐号同名的系统帐号。 我们经过上面的设置,再次访问samba共享文件时就可以使用redking或amy帐号访问了。 注意:解决/etc/samba目录下没有smbpasswd文件?? 原因:smb.conf文件启用了tdbsam验证。 解决:smb.conf文件中注释掉passdb backend = tdbsam一行,加上smb passwd file = /etc/samba/smbpasswd,然后保存退出。 这样再建立用户就产生了/etc/samba/smbpasswd文件了。 使用cat命令查看smbpasswd文件内容~:cat/etc/samba/smbpasswd 六、Samba的启动与停止 1)samba服务的启动 Service smb start或/etc/rc.d/init.d/smb start 2)samba服务的停止 Service smb stop或/etc/rc.d/init.d/smb stop 3)samba服务的重启 Service smb restart或/etc/rc.d/init.d/smbre start 4)samba服务配置重新加载 Service smb reload或/etc/rc.d/init.d/smb reload 注意:Linux服务中,当我们更改配置文件后,一定要记得重启服务,让服务重新加载配置文件, 这样新的配置才可以生效。 5)自动加载samba服务 我们可以使用ntsysv命令利用文本图形界面对smb自动加载进行配置,如果要自动加载smb, 可以在其前面选中“*”,否则取消掉就不自动加载了~ 七、share级别服务器实例及详解 Ok,上面已经对samba的相关性配置文件讲了个大概,现在我们通过实例来掌握一下samba具体使用流程来搭建samba服务器。 如果公司现在用一个工作组Workgroup需要添加samba服务器作为文件服务器,并发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。 我们分析下,这个案例属于samba的基本配置,我们可以实用share安全级别模式,既然允许所有员工访问,则需要为每个用户建立一个samba帐号,那么如果公司拥有大量用户呢,1000个用户,100000个用户,一个个设置会非常麻烦,我们可以通过配置security=share来让所有用户登录时 采用匿名帐户nobody访问,这样实现起来非常简单~~~ 1)修改samba主配置文件smb.conf vi /etc/samba/smb.conf (1).设置samba服务器工作组名为Workgroup (2).添加samba服务器注释信息为"File Server" (3).设置samba安全级别为share模式,允许用户匿名访问 (4).设置共享目录的共享名为public (5).设置共享目录的绝对路径为/share (6).最后我们设置允许匿名访问~ 设置完smb.conf后保存退出~ 2)重新加载配置 上面我们说过,Linux为了使新配置生效,需要重新加载配置,可以使用restart重新启动服务或者使用reload重新加载配置~ 注意: 这里强调一下细节,重启samba服务,虽然可以让配置生效,但是restart是先关闭samba服务,再开启服务,这样如果在公司网络运营中肯定会对客户端员工的访问造成影响,建议使用reload命令重新加载配置文件使其生效,这样不需要中断服务就可以重新加载配置~ samba服务器通过以上设置,现在用户就可以不需要输入帐号和密码就可以直接登录samba服务器并访问public共享目录~ 我们测试下,在/share目录下建个文件试下:touch /share/readme.txt 我们看下效果,开始—运行-输入samba服务器的访问地址 \\ip 八、user级别服务器实例及详解 上面的案例我们讲了share安全级别模式的samba服务器,可以实现用户方便通过匿名方式访问,但是如果在我们samba服务器上存在重要文件的目录,为了保证系统安全性及资料保密性,我们就必须对用户进行筛选,允许或禁止相应的用户访问指定目录,这里share安全级别模式就不能满足我们这样的实际要求了。 实现用户身份验证的方法很多,我们可以将安全级别模式配置为user、server、domain和ads,但是最常用的还是user安全级别模式,下面就来看下user这个安全级别模式的配置~ 如果公司有多个部门,因工作需要,我们就会分门别类的建立相应部门的目录,并将销售部的资料 ,集中管理,以便销售人员浏览,并且该目录存放在samba服务器的/companydata/sales/目录下 只允许销售部员工访问。 我们分析下,在/companydata/sales/目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级别,这样就启用了samba服务器的身份验证机制,然后在共享目录/companydata/sales下设置validusers字段,配置只允许销售部员工能够访问这个共享目录。 1)添加销售部用户和组并添加相应samba帐号,使用groupadd命令添加sales组,然后执行 useradd命令和passwd命令添加销售部员工的帐号及密码~ 接下来为销售部成员添加相应samba帐号 2)修改samba主配置文件smb.conf (1).设置user安全级别模式 (2).设置销售部共享目录为sales (3).指定共享目录为绝对路径为/companydata/sales (4).设置可以访问的用户为sales组成员 3)重新加载配置 上个案例讲过了,要让修改后的Linux配置文件生效,我们就要重新加载配置。 #service smb reload 我们测试下,在/companydata/sales目录下建个文件试下: #touch /companydata/sales/ readme.txt 输入销售部的帐号及密码进行登录 打开sales共享目录 这样销售部成员就可以进行访问sales共享目录下的数据了。 如果要不注销用sale1账户登陆,需要断开已经连接的会话,断开sale2用户登录的会话,方法如下,开始—运行—cmd-如下图输入命令。然后再次访问samba服务器用sale1账户登陆。 九、Samba高级服务器配置 上面说了下samba常规配置,这些已经可以使用企业内部资料通过网络共享并分配适当共享权限来管理共享目录,但这仅仅对于很多大型企业或安全要求高来说还是不能满足其需求,所以下面就来讲下samba高级服务器配置让我们搭建samba服务器功能更强大,管理更灵活,我们数据也更安全。 9.1 用户账号映射 前面已经说过,samba的用户帐号信息是保存在smbpasswd文件中,而且可以访问samba服务器的帐号也必须对应一个同名的系统帐号。基于这一点,所以,对于一些hacker来说,只要知道samba服务器samba帐号,就等于是知道了Linux系统帐号,只要crack其samba帐号密码加以利用就可以攻击samba服务器。所以我们要使用用户帐号映射这个功能来解决这个问题 用户帐号映射这个功能需要建立一个帐号映射关系表,里面记录了samba帐号和虚拟帐号的对应关系,客户端访问samba服务器时就使用虚拟来登录。 )编辑主配置文件/etc/samba/smb.conf 1 在global下添加一行字段username map =/etc/samba/smbusers开启用户帐号映射功能。 2)编辑此文件 vi /etc/samba/smbusers smbusers文件保存帐号映射关系,其有固定格式:samba帐号 = 虚拟帐号(映射帐号) 帐号sale1和sale2就是我们上面建立的samba帐号(同时也是Linux系统帐号),s1和s2就是映射帐号名(虚拟帐号),帐号sale1和sale2在我们访问共享目录时只要输入s1或s2就可以成功访问了,但是实际上访问samba服务器的还是我们sale1和sale2帐号,这样一来就解决了安 我们继续。 全问题~ 3)重启samba服务:service smb restart 4)验证效果~ 输入我们定义的映射帐号s1及s2,注意我们没有输入帐号sale1和sale2,映射帐号s1、s2的密码和sale1和sale2帐号一样~ 现在就可以通过映射帐号浏览共享目录了~ 注意:强烈建议不要将samba用户的密码与本地系统用户的密码设置成一样,可以避免非法用户使用samba帐号登录系统非法破坏~~~ 9.2 客户端访问控制(选) 对于samba服务器的安全性,我们已经说过可以使用valid users字段去实现用户访问控制,但是如果企业庞大,存在大量用户的话,这种方法操作起来就显得比较麻烦~比如samba服务器共享出一个目录来访问,但是要禁止某个IP子网或某个域的客户端访问此资源,这样情况使用valid users字段就无法实现客户端访问控制。 下面我们就讲下使用hosts allow和hosts deny两个字段来实现该功能。而用好这两个字段 关键在于熟悉和清楚它们的使用方法和作用范围 Hosts allow和hosts deny的使用方法 1)hosts allow和hosts deny字段的使用 Hosts allow字段定义允许访问的客户端 Hosts deny字段定义禁止访问的客户端 2)使用IP地址进行限制 比如公司内部samba服务器上共享了一个目录sales,这个目录是存放销售部的共享目录,公司 规定192.168.0.0/24这个网段的IP地址禁止访问此sales共享目录,但是其中192.168.0.24这个IP地址可以访问。 先将安全级别模式由user改为share。我们添加hosts deny和hosts allow字段: hosts deny=192.168.0.表示禁止所有来自192.168.0.0/24网段的IP地址访问 hosts allow=192.168.0.24表示允许192.168.0.24这个IP地址访问 当hosts deny和hosts allow字段同时出现并定义内容相互冲突时,hosts allow优先。现在设置的意思就是禁止C类地址192.168.0.0/24网段主机访问,但是允许192.168.0.24主机访问。 如果想同时禁止多个网段IP地址访问此服务器可以这样设置: hosts deny=192.168.1. 172.16.表示拒绝所有192.168.1.0网段和172.16.0.0网段的IP地址访问sales这个共享目录。hosts allow = 10.表示允许10.0.0.0网段的IP地址访问sales这个共享目录。 注意:当需要输入多个网段IP地址的时候,需要使用“空格”符号隔开。 3)使用域名进行限制 我们来看这样一个例子,公司samba服务器上共享了一个目录sales,公司规定.sale.com域和.net域的客户端不能访问,并且主机名为free的客户端也不能访问。 hosts deny=.sale.com .net free表示禁止.sale.com域和.net域及主机名为free的客户端访问public这个共享目录。 注意:域名和域名之间或域名和主机名之间需要使用“空格”符号隔开。 4)使用通配符进行访问控制 samba服务器共享了一个目录sales,规定所有人不允许访问,只有主机名为boss的客户端才可以访问。对于这样一个实例,我们就可以通过使用通配符的方式来简化配置。 hosts deny = All表示所有客户端,并不是说允许主机名为ALL的客户端可以访问。 常用的通配符还有“*”,“,”,“LOCAL”等。 还有一种比较有意思的情况,如果我们规定所有人不能访问sales目录,只允许192.168.0.0网段的IP地址可以访问,但是192.168.0.100及192.168.0.78的主机是要禁止访问。我们可以使用hosts deny禁止所有用户访问,再设置hosts allow允许192.168.0.0网段主机,但当hosts deny和hosts allow同时出现而且冲突时候,hosts allow生效,如果这样话,那么允许192.168.0.0网段的IP地址可以访问,但是192.168.0.100及192.168.0.78的主机禁止访问 就无法生效了,这时我们可以使用EXCEPT进行设置。 host sallow=192.168.0. EXCEPT 192.168.0.100 192.168.0.78表示允许192.168.0.0网段IP地址访问,但是192.168.0.100和192.168.0.78除外 allow和hosts deny的作用范围 hosts hosts allow和hosts deny设置在不同的位置上,它们的作用范围是不一样。如果设置在[global]里面,表示对samba服务器全局生效,如果设置在目录下面,则表只对这个目录生效。 这样设置表示只有192.168.0.88才可以访问samba服务器,全局生效~ 这样设置就表示只对单一目录sales生效,只有192.168.0.88才可以访问sales目录里面的资料。 9.3 设置Samba的权限 到这里我们已经可以对客户端访问进行有效的控制,但是对于能访问的客户端来说,我们还是不能灵活方便控制他们访问共享资源的权限,比如boss或gm这样的帐号可以对某个共享目录具有完全控制权限,其他帐号只有只读权限,这样的情况我们就可以使用write list字段来实现。 例如公司samba服务器上有个共享目录tech,公司规定只有boss帐号和tech组的帐号可以完全控制,其他人只有只读权限。如果只用writable字段则无法满足这个实例的要求,因为当writable=yes时,表示所有人都可以写入了,而当writable=no时表示所有人都不可以写入。这时我们就需要用到write list字段。 write list = boss,@tech 就表示只有boss帐号和tech组成员才可以对tech共享目录有写入权限(其中@tech就表示tech组)。 我们来看下writable和write list之间的区别: 字段 值 描述 writable =yes 所有帐号都允许写入 writable =No 所有帐号都禁止写入 write list 列表中的帐号允许写入 =[写入权限帐号列表] 9.4 Samba的隐藏共享 我们还可以使用browseable字段实现隐藏共享的功能~~~ 比如我们要把samba上的技术部共享目录隐藏,我们可以这样设置。 browseable = no表示隐藏该目录 现在就看不到sales共享目录了 如果我们直接输入\\samba服务器IP\sales就可以访问了~ 在有些特殊的情况下,browseable也无法满足企业的需求,比如,samba服务器上有个security目录,此目录只有boss用户可以浏览访问,其他人都不可以访问。因为samba的主配置文件只有一个,所有帐号访问都要遵守该配置文件的规则,如果隐藏了该目录,那么所有人就都看不到该目录了,就像上面演示的一样,要知道共享目录名称后输入\\ samba服务器IP \tech才可以访问技术部资料。如果这样的目录一多话,不可以叫boss去记那么多目录名称,那样还不被boss骂死~~~^_^问题出在samba服务的主配置文件只有一个,而smb.conf没有提供字段允许部分人可以浏览隐藏目录的功能。 那我们可以换个角度,既然单一配置文件无法实现要求,那么我们可以为不同需求的用户或组分别建立相应的配置文件并单独配置后实现其隐藏目录的功能,现在我们为boss帐号建立一个配置文件,并且让其访问的时候能够读取这个单独的配置文件。 (1)建立独立配置文件~ 先为boss帐号创建一个单独的配置文件,我们可以直接复制/etc/samba/smb.conf.bak这个之前我们备份的原配文件并改名就可以了,如果为单个用户建立配置文件,命名时一定要包含用户名。我们使用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,将sales目录里面的browseable = no删除,这样当boss帐号访问samba时,tech共享目录对boss帐号访问就是可见,这样主配置文件smb.conf和boss帐号的独立配置文件相搭配就有实现其他用户访问时sales共享目录是隐藏,而boss帐号访问时就是可见。 (4)重新启动samba服务:service smb restart (5)测试效果~现在我们以普通用户sale1帐号登录samba服务器,发现以sale1帐号登录samba看不到sales共享目录~~sales共享目录对除boss帐号以外的人是隐藏共享。 现在我们以boss帐号登录来看看~~ 我们发现以boss帐号登录之后,sales共享目录自动显示了~~~ 这样以独立配置文件的方法来实现隐藏共享对不同帐号的可见性非常方便~ 注意:目录隐藏了并不是说不共享了,只要知道共享名,并且有相应权限,还是可以访问, 就像上面演示的一样,可以输入“\\samba服务器IP地址\共享名”的方法就可以访问隐藏共享了。 十、Samba客户端配置 10.1Linux客户端访问Samba共享(选) linux客户端访问服务器主要有两种方法 1)使用smbclient命令 在Linux中,samba客户端使用smbclint这个程序来访问samba服务器时,先要确保客户端已经安装了samba-client这个rpm包。 smbclient可以列出目标主机共享目录列表 smbclient命令格式:smbclient –L 目标IP地址或主机名 -U 登录用户名%密码 当我们查看rhel4(192.168.40.250)主机的共享目录列表时,提示输入密码,这时候可以不输入密码,我们直接按回车,这样表示匿名登录,然后就会显示匿名用户可以看到的共享目录列表了~ smbclient –L rhel4或者smbclient –L 192.168.40.250 如果想使用samba帐号想看samba服务器端共享了什么目录,我们可以加上-U参数~,后面跟上用户名%密码。 Smbclient –L 192.168.40.250 –U boss%123456789 这样就显示了只有boss帐号才显示的sales部共享目录。 注意:不同用户使用smblient浏览的结果可能是不一样,这要根据服务器设置的访问控制权限而 定~ 我们还可以在使用smbclient命令行共享访问模式浏览共享的资料 smbclient命令行共享访问模式命令格式: smbclient //目标IP地址或主机名/共享目录 –U 用户名%密码 上面已经显示了服务器上有一个sales共享目录,我们来查看一下里面的内容~ 另外smbclient登录samba服务器后,我们可以使用help查询所支持的命令。 2)使用mount命令挂载共享目录 mount命令挂载共享目录格式: mount –t cifs //目标IP地址或主机名/共享目录名称 挂载点 –o username=用户名 [root@client~]#mount –t cifs //192.168.40.250/sales /mnt/sambadata/ -o username=boss%123456789 这表示挂载192.168.0.188主机上的共享目录tech到/mnt/sambadata目录下,cifs就是samba所使用的文件系统。 10.2Windows客户端访问Samba共享 这个就比较简单了,我们也一直用这个访问微软的共享目录,上面其他也已经讲过了,方法就是在开始运行里面使用UNC路径直接进行访问~~也可以到网上邻居里面找,但是不建议大家用这个方法, 运行或是直接在资源管理器或IE的地址栏里面输入UNC路径比较快 因为速度太慢。还是觉得在开始-- 1)在开始--运行里面使用UNC路径直接进行访问并输入帐号和密码登陆即可。 )映射网络驱动器访问samba服务器共享目录 2 输入tech共享目录的地址 输入可以访问tech共享目录的samba帐号和密码 这时在我的电脑的网络驱动器中就可以看到映射的Z盘了~ 打开Z盘就可以访问tech共享目录里面的资源。 十一、Samba的打印共享 默认情况下,samba的打印服务是开放~所以我们只要把打印机安装好后客户端的用户就可以使用 打印机了。 1)设置global配置项 修改smb.conf全局配置,开启打印共享功能 2)设置printers配置项 使用默认设置就可以让客户端正常使用权打印机了,需要注意的就是printable一定要设置成yes,如果不设置成yes那还打什么~~~path字段定义打印机队列,可以根据需要自己定制,另外共享打印和共享目录不一样,安装完打印机后必须重新启动samba服务,否则客户端可能无法看到共享的打印机。如果设置只允许部分员工使用打印机,我们可以使用valid users、hosts allow或hosts deny字段来实现,这些在讲共享目录时已经说过了,不清楚可以再翻翻看~~下面进入samba企业实战与应用。 十二、Samba企业实战与应用 12.1企业环境及需求 samba服务器目录: 企业数据目录:/samba 公共目录:/samba/public 销售部目录:/samba/sales 技术部:/samba/tech 企业员工情况: 总经理:boss 销售部:销售部karl、joe 技术部:技术部mary,jen 搭建samba文件服务器,建立公共共享目录,允许所有人访问,权限为只读,为销售部和技术部分别建立单独的目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。这是个典型的企业文件服务器案例。 12.2需求分析 对于建立公共目录public字段就可以实现匿名访问,员工只能访问本部门的共享目录,禁止访问非本部门的共享目录,我们可以通过设置目录共享字段“browseable=no”及字段“valid users”来实现其隐藏功能和相应的访问权限。这样设置不能很好得解决同一目录多种需求的权限设置,所以我们需要建立独立配置文件,为每个部门建立一个组后并为每个组建立配置文件来实现隔离用户权限会比较灵活~ 12.3解决 1)建立各部门专用共享目录 使用mkdir建立需求的共享目录以便分门别类的存储相应资料。 同时设置/companydata共享目录的用户权限,使得目录权限全打开,具体的权限控制由samba 配置文件控制。用户访问目录的限制是samba设置的权限和目录本身的权限两者中最严厉的那种权限。 2)添加samba服务器描述及设置smbpasswd文件 默认/etc/samba/目录下没有smbpasswd文件,我们要先关闭samba的tdbsam验证。 解决方法:在smb.conf文件中注释掉passdb backend = tdbsam一行,为了指定samba用户的验证我们加上这一条smb passwd file = /etc/samba/smbpasswd,然后保存退出。 添加用户和组 3) 先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理帐号gm及各个员工的帐号并加入相应的用户组。 接着使用smbpasswd命令添加samba用户 4)配置smb.conf文件 (1)建立单独配置文件 用户配置文件使用用户名命令,组配置文件使用组名命令。 (2)设置主配置文件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,设置完后保存退出vi编辑器。 (5)设置总经理gm配置文件 vi /etc/samba/gm.smb.conf (6)设置销售部组sales配置文件 vi /etc/samba/sales.smb.conf (7)设置技术部组tech配置文件 vi /etc/samba/tech.smb.conf (8)开启samba服务 Service smb start (9)测试 我们先用gm帐号登录测试,可以全部看到共享目录。 /companydata/share目录只读 现在我们以其他帐号测试,就用技术部joy吧 在这里技术部的员工就看不到销售部的共享目录。同时对public目录只读权限,对tech目录有 读写权限。 因为禁止对共享目录sales访问,就算知道了\\ip\sales路径也是不能访问。
/
本文档为【samba服务器配置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索