Samba服务全攻略.docx
《Samba服务全攻略.docx》由会员分享,可在线阅读,更多相关《Samba服务全攻略.docx(55页珍藏版)》请在冰豆网上搜索。
Samba服务全攻略
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|grepsamba
2Samba常规服务器配置
在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)Samba服务器接收到要求后,会查询主配置文件smb.conf,看是否共享了Share名目,如果共享了那个名目则查看客户端是否有权限访咨询。
(3)Samba服务器会将此次访咨询信息记录在日志文件之中,日志文件的名称和路径差不多上需要我们设置。
(4)如果客户端满足访咨询权限设置,则承诺客户端进行访咨询。
关于Samba服务器来讲,其主配置文件smb.conf记录了共享的名目列表。
例如share名目,temp名目等。
关于每个共享名目,需要配置相应权限,服务器会按照smb.conf文件中的设置,判定客户端是否有权限访咨询,只有拥有权限才能够访咨询服务器的资源。
Samba服务器同样会对用户的行为进行记录,每一次访咨询的信息都会记录在日志文件中,以便我们Linux治理员查询哪些客户端访咨询过Samba服务器。
2.1要紧配置文件smb.conf
Samba的配置文件一样就放在/etc/samba名目中,主配置文件名为smb.conf。
打开文件:
vim/etc/samba/smb.conf
1、samba配置简介
smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及有关信息。
smb.conf中以“#”开头的为注释,为用户提供有关的配置讲明信息,方便用户参考,不用修改它哈。
smb.conf中还有以“;”开头滴,这些差不多上samba配置的格式范例,默认是不生效滴,能够通过去掉前面的“;”并加以修改来设置想使用的功能。
2、GlobalSettings
GlobalSettings设置为全局变量区域。
全局变量确实是讲我们只要在global时进行设置,那么该设置项目确实是针对所有共享资源生效滴,该部分以[global]开始.
smb.conf配置通用格式,对相应功能进行设置:
字段=设定值
下面我们讲下[global]常用字段及设置方法:
1)设置工作组或域名称
工作组是网络中地位平等的一组运算机,能够通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。
我们设置samba服务器的工作组为WorkGroup
2)服务器描述
服务器描述实际上类似于备注信息哈,在一个工作组中,可能存在多台服务器,为了方便用户扫瞄,我们能够在serverstring配置相应描述信息,如此用户就能够通过描述信息明白自己要登录哪台服务器了啊~
我们设置samba描述信息为“CentOsFileServer”。
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字段专门丰富,设置灵活。
我们先来讲下几个最常用的字段哈~
1)设置共享名
共享资源公布后,必须为每个共享名目或打印机设置不同的共享名,给网络用户访咨询时使用,同时共享名能够与原名目名不同。
共享名设置专门简单:
[共享名]
我们来看个例子,Samba服务器中有个名目为/share,需要公布该名目成为共享名目,定义共享名为public
2)共享资源描述
网络中存在各种共享资源,为了方便用户识不,能够为其添加备注信息,以方便用户查看时明白共享资源的内容是什么。
格式:
comment=备注信息
举个例子哈,samba服务器上有个/sales名目存放公司销售部的数据,为了对公司部门职员进行区分,能够添
加备注信息。
3)共享路径
共享资源的原始完整路径,能够使用path字段进行公布,务必正确指定。
格式:
path= 绝对地址路径
samba服务器上/share/tools名目存放常用工具软件,需要公布该名目为共享,我们能够如此做。
4)设置匿名访咨询
共享资源如果对匿名访咨询进行设置,能够更换public字段。
格式:
public=yes #承诺匿名访咨询
public=no #禁止匿名访咨询
samba服务器/share共享名目承诺匿名用户访咨询,能够如此设置。
5)设置访咨询用户
如果共享资源存在重要数据的话,需要对访咨询用户审核,我们能够使用validusers字段进行设置。
格式:
validusers=用户名
validusers=@组名
我们来看下面一个例子哈,samba服务器/share/tech名目存放了公司技术部数据,只承诺技术部职员和经理访咨询,技术部组为tech,经理帐号为gm
6)设置名目只读
共享名目如果限制用户的读写操作,我们能够通过readonly实现哈~
格式:
readonly=yes #只读
readonly=no #读写
samba服务器公共名目/public存放大量共享数据,为保证名目安全我们只承诺读取,禁止写入
7)设置名目可写
如果共享名目承诺用户写操作,能够使用writable或writelist两个字段进行设置
writable格式:
writable=yes #读写
writable=no #只读
writelist格式:
writelist=用户名
writelist=@组名
注意:
[homes]为专门共享名目,表示用户主名目。
[printers]表示共享打印机。
2.2Samba服务日志文件
日志文件关于samba专门滴重要哈,它储备着客户端访咨询samba服务器的信息,以及samba服务的错误提示信息等,能够通过分析日志,关心解决客户端访咨询和服务器爱护等咨询题。
在/etc/samba/smb.conf文件中,logfile为设置samba日志的字段。
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配置文件中。
OK,Samba帐号添加完毕哈,如果我们在添加samba帐号时输入完两次密码出错:
Failedtomodifypasswordentryforuseramy,就像下面如此
这是因为Linux本地用户里没有amy那个用户,我们在系统里面添加一下就OK了
务必要注意在建立samba帐号之前,一定要先建立一个与samba帐号同名的系统帐号。
我们通过上面的设置,再次访咨询samba共享文件时就能够使用redking或amy帐号访咨询了。
注意:
解决/etc/samba名目下没有smbpasswd文件
缘故:
samba启用了tdbsam验证。
解决:
smb.conf文件中注释掉passdbbackend=tdbsam一行,加上smbpasswdfile=/etc/samba/smbpasswd,然后储存退出。
如此再建立用户就产生了/etc/samba/smbpasswd文件了。
使用cat命令查看smbpasswd文件滴内容哈~:
cat/etc/samba/smbpasswd
2.4Samba的启动与停止
1)samba服务的启动
servicesmbstart或/etc/rc.d/init.d/smbstart
2)samba服务的停止
servicesmbstop或/etc/rc.d/init.d/smbstop
3)samba服务的重启
servicesmbrestart或/etc/rc.d/init.d/smbrestart
4)samba服务配置重新加载
servicesmbreload或/etc/rc.d/init.d/smbreload
注意:
Linux服务中,当我们更换配置文件后,一定要记得重启服务哈,让服务重新加载配置文件,如此新的配置才能够生效哈~
5)自动加载samba服务
chkconfig
我们能够使用chkconfig命令自动加载smb服务:
chkconfig--level3smb on #运行级不3自动加载
chkconfig--level3smboff #运行级不3不自动加载
3举例
3.1share服务器实例及详解
上面差不多对samba的有关性配置文件讲了个大致哈,现在我们通过实例来把握一下samba具体使用流程来搭建samba服务器。
如果公司现在用一个工作组Workgroup需要添加samba服务器作为文件服务器哈,并公布共享名目/share,共享名为public,那个共享名目承诺所有公司职员访咨询。
我们分析下哈,那个案例属于samba的差不多配置,我们能够有用share安全级不模式,既然承诺所有职员访咨询,则需要为每个用户建立一个samba帐号,那么如果公司拥有大量用户呢?
1000个用户,100000个用户,一个个设置会专门滴苦恼哈,我们能够通过配置security=share来让所有用户登录时采纳匿名帐户nobody访咨询,如此实现起来专门简单
1)修改samba主配置文件smb.conf
vim/etc/samba/smb.conf
(1).设置samba服务器工作组名为Workgroup
(2).添加samba服务器注释信息为"FileServer"
(3).设置samba安全级不为share模式,承诺用户匿名访咨询
#=================GlobalSettings=======================
[global]
#-----------------------NetwrokRelatedOptions-------------------------
#
#workgroup=NT-Domain-NameorWorkgroup-Name,eg:
MIDEARTH
#
#serverstringistheequivalentoftheNTDe.ionfield
#
#netbiosnamecanbeusedtospecifyaservernamenottiedtothehostname
#
#InterfacesletsyouconfigureSambatousemultipleinterfaces
#Ifyouhavemultiplenetworkinterfacesthenyoucanlistthe.es
#youwanttolisten.(neveromitlocalhost)
#
#HostsAllow/HostsDenyletsyourestrictwhocanconnect,andyoucan
#specifiyitasapershareoptionaswell
#
workgroup=Workgroup #设置samba服务器工作组名为Workgroup
serverstring=FileServer #添加samba服务器注释信息为"FileServer"
; netbiosname=MYSERVER
; interfaces=loeth0192.168.12.2/24192.168.13.2/24
; hostsallow=127.192.168.12.192.168.13.
#---------------------------LoggingOptions-----------------------------
#
#LogFileletyouspecifywheretoputlogsandhowtosplitthemup.
#
#MaxLogSizeletyouspecifythemaxsizelogfilesshouldreach
#logssplitpermachine
; logfile=/var/log/samba/%m.log
#max50KBperlogfile,thenrotate
; maxlogsize=50
#-----------------------StandaloneServerOptions------------------------
#
#Scuritycanbesettouser,share(deprecated)orserver(deprecated)
#
#Backendtostoreuserinformationin.Newinstallationsshould
#useeithertdbsamorldapsam.smbpasswdisavailableforbackwards
#compatibility.tdbsamrequiresnofurtherconfiguration.
security=share #设置samba安全级不为share模式,承诺用户匿名访咨询
; passdbbackend=tdbsam
smbpasswdfile=/etc/samba/smbpasswd
#-----------------------DomainMembersOptions------------------------
#
#Securitymustbesettodomainorads
#
#Usetherealmoption.lywithsecurity=ads
#SpecifiestheActiveDirectoryrealmthehostispartof
#
#Backendtostoreuserinformationin.Newinstallationsshould
#useeithertdbsamorldapsam.smbpasswdisavailableforbackwards
#compatibility.tdbsamrequiresnofurtherconfiguration.
#
(4).设置共享名目的共享名为public
(5).设置共享名目的绝对路径为/share
(6).最后我们设置承诺匿名访咨询哈~
设置完smb.conf后储存退出哈~
2)重新加载配置
上面我们讲过哈,Linux为了使新配置生效,需要重新加载配置,能够使用restart重新启动服务或者使用reload重新加载配置哈~
注意哈:
偶那个地点强调一下细节,重启samba服务,尽管能够让配置生效,然而restart是先关闭samba服务,再开启服务哈,如此如果在公司网络运营中确信会对客户端职员的访咨询造成阻碍,建议使用reload命令重新加载配置文件使其生效,如此不需要中断服务就能够重新加载配置哈~
samba服务器通过以上设置,现在用户就能够不需要输入帐号和密码就能够直截了当登录samba服务器并访咨询public共享名目
我们测试下,在/share名目下建个文件试下:
touch/share/test_sharemode_samba.tar
我们看下成效
3.2user服务器实例及详解
上面的案例我们讲了share安全级不模式的samba服务器哈,能够实现用户方便滴通过匿名方式访咨询,然而如果在我们samba服务器上存在重要文件的名目,为了保证系统安全性及资料保密性哈,我们就必须对用户进行选择,承诺或禁止相应的用户访咨询指定滴名目哈,那个地点share安全级不模式就不能满足我们如此的实际要求了。
实现用户身份验证的方法专门多,我们能够将安全级不模式配置为user、server、domain和ads,然而最常用的依旧user安全级不模式哈,下面偶就来看下user那个安全级不模式的配置
如果公司有多个部门,因工作需要,我们就会分门不类的建立相应部门的名目,并将销售部的资料存放在samba服务器的/companydata/sales/名目下,集中治理,以便销售人员扫瞄,同时该名目只承诺销售部职员访咨询。
我们分析下,在/companydata/sales/名目中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级不,如此就启用了samba服务器的身份验证机制,然后在共享名目/company