Samba配置文件常用参数详解
- 格式:doc
- 大小:56.00 KB
- 文档页数:12
samba配置详解:Samba配置文件常用参数详解疯狂代码 / ĵ:http://IntegrativeServer/Article65311.htmlSamba配置文件常用参数详解Samba主配置文件叫smb.conf默认在/etc/samba/目录下smb.conf含有多个段每个段由段名开始直到下个段名每个段名放在方括号中间每段参数格式是:名称=指配置文件中行个段名和参数段名和参数名不分大小写除了[global]段外所有段都可以看作是个共享资源段名是该共享资源名字段里参数是该共享资源属性Samba安装好后使用testparm命令可以测试smb.conf配置是否正确使用testparm –v命令可以详细列出smb.conf支持配置参数全局参数:Global Settings =[global]config file = /usr/local/samba/lib/smb.conf.%m介绍说明:config file可以让你使用另个配置文件来覆盖缺省配置文件如果文件 不存在则该项无效这个参数很有用可以使得samba配置更灵活可以让台samba服务器模拟多台区别配置服务器比如你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己配置文件那么先在/etc/samba/host/下为PC1配置个名为smb.conf.pc1文件然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m这样当PC1请求连接Samba Server时smb.conf.%m就被替换成smb.conf.pc1这样对于PC1来说它所使用Samba服务就是由smb.conf.pc1定义而其他机器访问Samba Server则还是应用smb.confworkgroup = WORKGROUP介绍说明:设定 Samba Server 所要加入工作组或者域server = Samba Server Version %v介绍说明:设定 Samba Server 注释可以是任何串也可以不填宏%v表示显示Samba版本号netbios name = smbserver介绍说明:设置Samba ServerNetBIOS名称如果不填则默认会使用该服务器DNS名称第部分netbios name和workgroup名字不要设置成样了erfaces = lo eth0 192.168.12.2/24 192.168.13.2/24介绍说明:设置Samba Server监听哪些网卡可以写网卡名也可以写该网卡IP地址hosts allow = 127. 192.168.1. 192.168.10.1介绍说明:表示允许连接到Samba Server客户端多个参数以空格隔开可以用个IP表示也可以用个网段表示hosts deny 和hosts allow 刚好相反例如:hosts allow=172.17.2.EXCEPT172.17.2.50表示容许来自172.17.2.*.*主机连接但排除172.17.2.50hosts allow=172.17.2.0/255.255.0.0表示容许来自172.17.2.0/255.255.0.0子网中所有主机连接hosts allow=M1M2表示容许来自M1和M2两台计算机连接hosts allow=@xq表示容许来自XQ网域所有计算机连接max connections = 0介绍说明:max connections用来指定连接Samba Server最大连接数目如果超出连接数目则新连接请求将被拒绝0表示不限制deadtime = 0介绍说明:deadtime用来设置断掉个没有打开任何文件连接时间单位是分钟0代表Samba Server不自动切断任何连接time server = yes/no介绍说明:time server用来设置让nmdb成为windows客户端时间服务器log file = /var/log/samba/log.%m介绍说明:设置Samba Server日志文件存储位置以及日志文件名称在文件名后加个宏%m(主机名)表示对每台访问Samba Server机器都单独记录个日志文件如果pc1、pc2访问过Samba Server就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件max log size = 50介绍说明:设置Samba Server日志文件最大容量单位为kB0代表不限制security = user介绍说明:设置用户访问Samba Server验证方式共有 4种验证方式1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低2. user:Samba Server共享目录只能被授权用户访问,由Samba Server负责检查账号和密码正确性账号和密码要在本Samba Server中建立3. server:依靠其他Windows NT/2000或Samba Server来验证用户账号和密码,是种代理验证此种安全模式下,系统管理员可以把所有Windows用户和口令集中到个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代方式4. do:域安全级别,使用主域控制器(PDC)来完成认证passdb backend = tdbsam介绍说明:passdb backend就是用户后台意思目前有 3种后台:smbpasswd、tdbsam和ldapsamsam应该是security account manager(安全账户管理)简写1.smbpasswd:该方式是使用smb自己工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置个Samba密码客户端就用这个密码来访问Samba资源smbpasswd文件默认在/etc/samba目录下不过有时候要手工建立该文件2.tdbsam:该方式则是使用个数据库文件来建立用户数据库数据库文件叫passdb.tdb默认在/etc/samba目录下passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户不过要建立Samba用户必须先是系统用户我们也可以使用pdbedit命令来建立Samba账户pdbedit命令参数很多我们列出几个主要pdbedit –a username:新建Samba账户pdbedit –x username:删除Samba账户pdbedit –L:列出Samba用户列表读取passdb.tdb数据库文件pdbedit –Lv:列出Samba用户列表详细信息pdbedit –c “[D]” –u username:暂停该Samba用户账号pdbedit –c “” –u username:恢复该Samba用户账号3.ldapsam:该方式则是基于LDAP账户管理方式来验证用户首先要建立LDAP服务然后设置“passdb backend = ldapsam:ldap://LDAP Server”encrypt passwords = yes/no介绍说明:是否将认证密码加密现在windows操作系统都是使用加密密码所以般要开启此项不过配置文件默认已开启smb passwd file = /etc/samba/smbpasswd介绍说明:用来定义samba用户密码文件smbpasswd文件如果没有那就要手工新建username map = /etc/samba/smbusers介绍说明:用来定义用户名映射比如可以将root换成administrator、admin等不过要事先在smbusers文件中定义好比如:root = administrator admin这样就可以用administrator或admin这两个用户来代替root登陆Samba Server更贴近windows用户习惯options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192介绍说明:用来设置服务器和客户端的间会话Socket选项可以优化传输速度do master = yes/no介绍说明:设置Samba服务器是否要成为网域主浏览器网域主浏览器可以管理跨子网域浏览服务local master = yes/no介绍说明:local master用来指定Samba Server是否试图成为本地网域主浏览器如果设为no则永远不会成为本地网域主浏览器但是即使设置为yes也不等于该Samba Server就能成为主浏览器还需要参加选举preferred master = yes/no介绍说明:设置Samba Server开机就强迫进行主浏览器选举可以提高Samba Server成为本地网域主浏览器机会如果该参数指定为yes时最好把do master也指定为yes使用该参数时要注意:如果在本Samba Server所在子网有其他机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时那么这些机器将会争夺主浏览器而在网络上大发广播影响网络性能如果同个区域内有多台Samba Server将上面 3个参数设定在台即可os level = 200介绍说明:设置samba服务器os level该参数决定Samba Server是否有机会成为本地网域主浏览器os level从0到255winNTos level是32win95/98os level是1Windows 2000os level是64如果设置为0则意味着Samba Server将失去浏览选择如果想让Samba Server成为PDC那么将它os level值设大些do logons = yes/no介绍说明:设置Samba Server是否要做为本地域控制器主域控制器和备份域控制器都需要开启此项logon script = %u.bat介绍说明:当使用者用windows客户端登陆那么Samba将提供个登陆档如果设置成%u.bat那么就要为每个用户提供个登陆档如果人比较多那就比较麻烦可以设置成个具体文件名比如start.bat那么用户登陆后都会去执行start.bat而不用为每个用户设定个登陆档了这个文件要放置在[netlogon]path设置目录路径下wins support = yes/no介绍说明:设置samba服务器是否提供wins服务wins server = wins服务器IP地址介绍说明:设置Samba Server是否使用别wins服务器提供wins服务wins proxy = yes/no介绍说明:设置Samba Server是否开启wins代理服务dns proxy = yes/no介绍说明:设置Samba Server是否开启dns代理服务load prers = yes/no介绍说明:设置是否在启动Samba时就共享打印机prcap name = cups介绍说明:设置共享打印机配置文件pring = cups介绍说明:设置Samba共享打印机类型现在支持打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx共享参数:Share Definitions[共享名]comment = 任意串介绍说明:comment是对该共享描述可以是任意串path = 共享目录路径介绍说明:path用来指定共享目录路径可以用%u、%m这样宏来代替路径里unix用户和客户机Netbios名用宏表示主要用于[homes]共享域例如:如果我们不打算用home段做为客户共享而是在/home/share/下为每个Linux用户以他用户名建个目录作为他共享目录这样path就可以写成:path = /home/share/%u; 用户在连接到这共享时具体路径会被他用户名代替要注意这个用户名路径定要存在否则客户机在访问时会找不到网络路径同样如果我们不是以用户来划分目录而是以客户机来划分目录为网络上每台可以访问samba机器都各自建个以它netbios名路径作为区别机器共享资源就可以这样写:path = /home/share/%mbrowseable = yes/no介绍说明:browseable用来指定该共享是否可以浏览writable = yes/no介绍说明:writable用来指定该共享路径是否可写available = yes/no介绍说明:available用来指定该共享资源是否可用admin users = 该共享管理者介绍说明:admin users用来指定该共享管理员(对该共享具有完全控制权限)在samba 3.0中如果用户验证方式设置成“security=share”时此项无效例如:admin users =bobyuanjane(多个用户中间用逗号隔开)valid users = 允许访问该共享用户介绍说明:valid users用来指定允许访问该共享资源用户例如:valid users = bobyuan@bob@tech(多个用户或者组中间用逗号隔开如果要加入个组就用“@+组名”表示)invalid users = 禁止访问该共享用户介绍说明:invalid users用来指定不允许访问该共享资源用户例如:invalid users = root @bob(多个用户或者组中间用空格隔开)public = yes/no介绍说明:public用来指定该共享是否允许guest账户访问guest ok = yes/no介绍说明:意义同“public”几个特殊共享:[homes]comment = Home Directoriesbrowseable = nowritable = yesvalid users = %S; valid users = MYDOMAIN\%S[prers]comment = All Prerspath = /var/spool/sambabrowseable = noguest ok = nowritable = noprable = yes[netlogon]comment = Network Logon Service path = /var/lib/samba/netlogonguest ok = yeswritable = noshare modes = no[Profiles]path = /var/lib/samba/profiles browseable = noguest ok = yes 2009-3-28 1:26:11 疯狂代码 /。
SAMBA配置详解CNET中国..转载作者: 未知来源 : LINUX宝库摘要:这一篇文章提供了以前LinuxFocus 文章关于SAMBA用于在Unix-Windows 异构网络共享资源的方案。
特别地,它集中在使用SAMBA运行Windows提供的服务。
这不仅是因为Linux强大灵活,还更出于经济考虑的结果:* 极大的节省了购买Windows服务器的许可证费用。
* 要达到相似的性能表现,Linux比Windows使用更少的硬件资源(也就是处理器和内存了)。
一个运行SAMBA配置恰当的Linux服务器可以替代Windows NT/2000服务器,它一般能共享目录, 提供活动目录服务(active directoryservice ,ADS) 但是它可以做为主域控制器(Primary Domain Controller, PDC), 进行 Windows 2000/NT/98/95 作为客户机的用户认证,共享资源(目录和打印机)和定制用户会话。
这篇文章主要集中到这些方面。
许多的计算机环境都以Windows 服务器提供的功能为基础,装有SAMBA的Linux 服务器会在不改变客户机的情况下,替代所有基于Windows系统提供的功能。
以下的要讨论的步骤假定:SAMBA已经安装并且运行正确的机器将被用做服务器。
读者需要 Linux和Windows服务器的基本的知识。
案例学习考虑Linux/Samba 服务器作为主域控制器(PDC), 每个认证过的用户进入两种共享的目录,一个是公共空间,一个是私人空间。
在这篇文章里,讨论一种进入私人数据空间的极为常见的情况,就是每个用户有一个个人的目录。
要考虑的细节:Linux/Samba NetBIOS 名字:SMBServerWindows 域名(工作组): THEDOMAIN每个用户的私人分区: H: (Windows) => /home/ (Linux server)公共分区: P: (Windows) => /home/public图 1 显示了一个简单的网络示意图,客户机运行Windows系统,使用Windows NT/2000服务器提供的资源和服务。
Linux1 Samba 全局参数在smb.conf 配置文件中,主要包括全局设置段【global 】、用户目录段【homes 】和打印配置段【printers 】这3个部分。
全局设置段(Global Settings )是与Samba 服务整体运行环境有关的设置选项(全局参数),用户对它所做的设置将对所有的共享资源生效。
进入/etc/samba 目录,双击打开smb.conf 文件,可以看到【global 】配置段,在该配置段中可查看到如下内容的信息,如图2-40所示。
图2-40 global 配置段内容提 示除了使用vi /etc/samba/smb.conf 命令可以查看配置文件信息外,还可以在桌面,直接双击【计算机】图标,然后依次双击【文件系统】|【etc 】|【samba 】|【smb.conf 】文件夹,来查看配置文件内容。
1.workgroup在global 配置段内容的第1行标明了这是全局配置段,第2行是用于设置Samba 服务器在网络上所属的域名或者工作组的名称,修改方法是修改workgroup 参数,其格式为:workgroup = NT-Domain-Name or Workgroup-name 。
如果用户不设置,那么系统默认使用的工作组名称为MYGROUP 。
即workgro up=MYGROUP 。
工作组是网络中地位平等的一组计算机的逻辑组合,用户可以通过设置workgroup 参数的值来设置Samba 服务器所在的工作组或域名。
提示2.server string因为在一个工作组或域中,可能存在多台服务器,为了方便用户浏览,就可以通过server string来配置相应的描述信息,这样用户就可以通过描述信息指定服务器的用途以及快速登录所要登录的服务器,其设置格式为:server string = Samba Server。
默认设置的描述信息为Samba Server。
除了可以输入字符串外,它还支持变量的使用,如表2-2列出了变量名称以及其表示含义。
linux 下配置samba服务器参数详解为了能够让windows下的用户通过以太网访问Linux下的共享文件,需要开启Samba服务器,Samba服务器详细配置步骤如下:1.打开samba的配置文件vim /etc/samba/smb.conf2.其中存在如下几个域[global](全局参数的设置,它对samba的功能具有很大的影响,主要用来设置整个系统规则。
workgroup= 这是你在windows中的域。
server string= 这是在windows中看到你的samba的解释。
NETBIOS name =默认的是LINUX机器名dos charset=cp936unix charset=cp936 0这两处设置就可以正确显示中文。
hosts allow 允许登录的linux-samba的主机名单,用IP地址给出,多个IP地址用空格分开,不在名单中的主机将不能得到samba提供的服务,起到网络安全的作用。
printcap name 指定printcap文件地址,通常为/etc/printcap,包含了linux打印机的配置信息。
load printers 允许使用共享打印机时,默认值为yes。
printing 如果使用的打印机是非标准的,那么应该指出打印机系统类型。
log file = /usr/local/samba/var/log.%mmax log size = 0上面这两处配置则是Samba日志的相关定义。
其记录文件的位置是放在/var/log/samba/%m.log,安装目录不一样,日志可不一样,后面的一条是定义日志记录文件的大小,单位是KB,如果是0的话就表示不限大小。
guest acount 来宾帐户,表示用哪一个Linux用户作为所要的客户连接,定义Samba缺省的用户账号,这个账号必须在/etc/passwd中。
security 指定安全模式。
大多数用户使用user级的安全模式,samba用本地linux口令文件验证。
samba 语法Samba 是一个提供文件和打印服务的软件套件,适用于各种Microsoft Windows 客户端,并可以与Windows 服务器环境集成。
它允许在不同操作系统之间共享文件和打印机,包括Linux、Windows 和macOS。
Samba 的配置涉及编辑smb.conf文件,这是Samba 服务器的主要配置文件。
以下是Samba 配置文件语法的基本概述以及一些常见参数:1.全局设置:[global]workgroup = WORKGROUPserver string = Samba 服务器security = usermap to guest = Bad User•workgroup:指定服务器所属的工作组。
•server string:描述Samba 服务器。
•security:定义身份验证方法。
对于独立服务器,通常选择"user"。
•map to guest:指定当未经身份验证的用户尝试访问共享时的行为。
2.共享定义:[share-name]path = /path/to/shared/foldercomment = 共享文件夹的描述browseable = yesguest ok = noread only = nocreate mask = 0755•path:指定共享文件夹的路径。
•comment:提供共享文件夹的描述。
•browseable:确定共享是否对客户端可见。
•guest ok:允许或拒绝对共享的访客访问。
•read only:指定共享是只读还是读写。
•create mask:设置新文件的默认权限。
3.用户身份验证:[homes]comment = 用户目录browseable = nowritable = yes•homes:自动为每个用户的主目录创建一个共享。
•writable:指定用户是否对其主目录具有写访问权限。
4.用户和组映射:username map = /etc/samba/smbusers•username map:指定用户名映射文件的位置。
服务名:smb配置目录:/etc/sabma/主配置文件:/etc/sabma/smb.conf#============================== Global Settings =============================17行workgr oup语法workgtoup = <工作组群>;预设workgroup = M YGROUP说明设定Samba Server 的工作组例workgroup = workgroup 和WIN2000S设为一个组,可在网上邻居可中看到共享21行server string语法server string = <说明>;预设sarver string = Samba Server说明设定Samba Server 的注释其他支持变量t%-访问时间I%-客户端IP m%-客户端主机名M%-客户端域名S%-客户端用户名例server string = this is a Samba Server 设定出现在Windows网上邻居的Samba Server 注释为this is a Samba Server28行hosts allow语法hosts aoolw = <IP地址>; ...预设; host allow = 192.168.1. 192.168.2. 127.说明限制允许连接到Samba Server 的机器,多个参数以空格隔开。
表示方法可以为完整的IP地址,如192.168.0.1网段,如192.168.0.例hosts allow = 192.168.1. 192.168.0.1 表示允许192.168.1 网段的机器网址为192.168.0.1 的机器连接到自己的samba server32行printcap name语法printcap name= <打印机配置文件>;预设printcap name= /etc/printcap说明设定samba srever 打印机的配置文件例printcap name= /etc/printcap设定samba srever 参考/etc/printcap 档的打印机设定语法load printers = <yes/no>;预设load printers = ye s说明是否在开启samba server 时即共享打印机38行printing语法printing = <打印机类型>;预设printing = lprng说明设定samba server 打印机所使用的类型,37行为目前所支持的类型42行guest account语法guert account = <帐户名称>;预设guert account = pcguest说明设定访问samba server 的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"nobody"用户例guert account = andy 设定设定访问samba server 的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限46行log file语法log file= <日志文件>;预设log file= /var/log/samba/%m.log说明设定samba server 日志文件的储存位置和文件名(%m代表客户端主机名)49行max log size语法max log size = <??KB>;预设max log size = 0说明设定日子文件的最大容量,单位KB 这里的预设值0代表不做限制53行security语法se curity= <等级>;预设se curity= user说明设定访问samba server 的安全级别共有四种share---不需要提供用户名和密码user----需要提供用户名和密码,而且身份验证由samba server 负责******==>如果预设user ,则添加配置:username map =server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台samba server作身份验证domain--需要提供用户名和密码,指定wi nNT/2000/XP域服务器作身份验证60行password server语法password server = <IP地址/主机名>;预设password server = <NT-Server-Name>;说明指定某台服务器(包括windows 和linux)的密码,作为用户登入时验证的密码其他此项需配合security= server时,才可设定本参数64行password level65行username level语法password level = <位数>;username level = <位数>;预设password level = 8username level = 8说明设定用户名和密码的位数,预设为8位字符70行encrypt passwords语法encrypt passwords = <yes/no>;预设encrypt passwords = yse说明设定是否对samba的密码加密71行smb passwd file语法smb passwd file= <密码文件>;预设smb passwd file= /etc/samba/smbpasswd说明设定samba的密码文件130行local master语法local ma ster = <yes/no>;预设local ma ster = no说明设定samba server 是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no134行os level = 33语法os level = <数字>;说明设定samba server的os level.os level从0 到255 .winNT的os level为33, win95/98的os level 是 1 .若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上139行domain master语法domain ma ster = <yes/no>;预设domain ma ster = yes说明设定samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no143行preferred master语法preferred master = <ye s/no>;预设preferred master = yes说明设定samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)163行wins support语法wins support = <yes/no>;预设wins support = yes说明设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no.除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes其他wins support 和wins server 只能选择一个167行wins server语法wins server = <IP地址>;预设wins server = w.x.y.z说明设定samba server 是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes 其他wins support 和wins server例wins server = 192.168.0.1 表示samba server要使用192.168.0.1提供的WINS服务#============================== Share Definitions =============================[homes]comment = Home Directoriesbrowseable = nowritable = yesvalid users = %S使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号[分享的资源名称]<指令1>; = (参数)<指令2>; = (参数)..........................要提供分享资源时,须先把欲分享的资源以[]符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下comment---------注释说明path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取printable-------是yes/否no允许打印hide dot ftles--是yes/否no隐藏隐藏文件public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security= share 时此项才起作用)read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read onlyvaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)read list-------设定此名单内的成员为只读(用户名/@组名)write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)create ma sk-----建立文件时所给的权限directory ma sk--建立目录时所给的权限force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)allow hosts-----设定只有此网段/IP的用户才能访问共享资源allwo hosts = 网段ex cept IPdeny hosts------设定只有此网段/IP的用户不能访问共享资源allow hosts=本网段指定IP指定IPdeny hosts=指定IP本网段指定IP1. 改smb.conf文件;在[global]部分加入:null passwords = yes设置securit y= share取消guest account = pcgu est 的注释建立[pcguest]段:[pcguest]comment = pcgu est's sharepath = /home/pcguestpublic = yesguest ok= y eswritable = yes2.建立pcguest用户,并修改/home/pcguest目录权限#useradd p cguest#passwd pcguest#chmod a+r,a+w /home/pcguest3.将pcguest加入smbp asswd文件中#smbpasswd -a pcgu est#smbpasswd -n p cguest4.重启samb a.================================================================================work group = MYGROUP//此项表示在Windows操作系统中的“网上邻居”将会出现的SAMBA服务器所属群组,默认MYGROUP,不区分大小写。
Samba服务器配置资料大全名目Samba服务器配置资料大全........................................................................... 错误!未定义书签。
1 Samba服务器配置文件 (2)1.1 (1) 全局参数 (2)1.2 (2) 资源共享的选项 (5)1.3 (3) 专门变量 (7)1.4 文件实例: (7)2 Samba 3.x SW AT预验证远程缓冲区溢出漏洞 (8)3 Samba和Windows 的密码处理认证方式 (10)4 linux—windows互联实战经历 (10)5 Samba3.0服务器实战调试 (12)6 SMB的扩展应用 (16)7 Smaba配置文件详细分析〔二〕 (22)1Samba服务器配置文件/etc/samba/smb.conf功能: 设置samba服务器选项和共享资源的设置文件格式: #说明语句[global] //定义samba服务器的全局选项……全局参数=值……[homes] //共享用户主名目……资源共享参数=值……[printers] // 打印机共享……资源共享参数=值……[public] //共享名目设置……资源共享参数=值……以上声明为系统自带的声明,用户也能够依照实际需要定义共享名目:[自定义] //自定义的共享……资源共享参数=值……说明:1.1(1) 全局参数差不多全局参数:Workgroup=域名/工作组名功能:设定samba服务器所属工作组/域的名称)Netbios name=主机名称功能:设置samba服务器的netbios名称Server string=字符串功能:设置samba服务器的描述interfaces=接口名/ip地址功能:设置samba服务器的ip地址,假如不想使用默认IP地址或者想同时使用多个IP地址,能够设置那个选项client code page=850/936功能:设定客户端存取samba服务器的资源时所使用的字符编码表实例:client code page=936安全设置参数:admin users=用户名功能:设置治理员账号socket address=ip地址功能:指定samba服务器监听的ip地址security=user/share/domain/server功能:设置samba的共享安全级别注意:share //表示共享级访问,服务器不对客户机进行身份验证user //表示用户级访问server //表示服务器级访问,被访问的samba服务器要求另一台samba服务器对客户机进行身份验证domain //表示域级访问,由域操纵器对客户机进行身份验证password server=ip址址/主机名功能:指定密码服务器的位置,当security值为server/domain必须设置该参数encrypt passwords=yes/no功能:指定是否使用加密口令注意:关于windows客户机来说,该选项应该设置为yesrestrict anonymous=true/false功能:指定服务器是否承诺win NT/2000以匿名方式登录实例:restrict anonymous=falsesmb passwd file=文件路径功能:指定samba用户密码的文件位置实例:smb passwd file=/etc/samba/smbpasswdmap to guest=never/bad user/bad password功能:设置当用户所输入的用名和密码不正确时的处理方式注意:该选项只有security=share时才有效,该选项能够取以下三种值:never 表示拒绝使用任何资源bad user 表示用户输入用户名正确,但密码错误时,能够承诺以guest登录bad password 表示用户输入的用户名和口令都错误时,能够承诺以guest登录username map=文件路径功能:指定SMB用户名与LINUX用户名映射文件的路径实例:username map=/etc/samba/smbusersguest account=用户名功能:指定来宾账号的名称,默认为nobodyhosts allow= ip地址/主机名/域名功能:设置承诺访问的客户机hosts deny=ip地址/主机名/域名功能:设置禁止访问的客户机打印机设置参数:printcap name=路径功能:设定打印机的配置文件的位置实例:printcap name=/etc/printcapload printers =yes/no功能:设定是否自动装载打印机的装载文件,当要做打印服务器时必须设置为yesprinting = /cups/bsd/lprng/sysv功能:设置打印机相关指令时所采取的模式实例:p rinting=lprngprinter name=名称功能:设置打印机的名称日志设置参数:log file=路径功能:定义日志文件的位置实例:log file=/var/log/samba/%m.logmax log size=数字功能:定义日志文件的最大千字节运行效率参数:change notify timeout=数字功能:设置服务器周期性专门通知实例:change notify timeout=90deadtime=数字功能:客户端无操作多少分钟后服务器中断连接实例:deadtime=10getwd cache=yes/no功能:是否启用cache功能keepalive=数字功能:服务器每隔多少秒向客户端发送keepalive包用于确认客户端是否工作正常max open files=数字功能:同一个客户端最多能打开的文件数目实例:max open files=1000wins设置参数:wins support=yes/no功能:是否支持wins解析实例:wins support=yeswins server=服务器功能:指定wins服务器的位置实例:wins server=192.168.0.2wins proxy=yes/no功能:设置samba服务器是否支持wins代理功能实例:wins proxy=yes1.2(2) 资源共享的选项差不多参数 :comment=说明语句功能:对共享资源的说明path=路径功能:共享资源的路径访问操纵参数:browseable=yes/no功能:是否能够扫瞄共享名目,默认为yesprintable =yes/no功能:设置客户机是否能够使用共享打印机打印avalidable=yes/no功能:设置共享资源是否可用实例:avalidable=yespublic=yes/no功能:设置共享资源是否承诺所有用户访问,除guest用户以外guest ok =yes/no功能:设置是否承诺guest用户访问共享资源guest only=yes/no功能:设置共享名目只承诺guest用户访问read only=yes/no功能:访问用户对共享资源只读valid users=用户名/@组名功能:设定指定承诺访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@实例:valide users=u1,u2,@g1invalid users=用户名/@组名功能:设定指定禁止访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@create mode=权限值功能:指定客户机在共享名目中创建文件的默认权限,默认权限为744directory mode =0775功能:指定客户机共享名目中创建文件名目的默认权限,默认权限为755writable=yes/no功能:指定共享的路径是否可写write list=用户名/@组名功能:设定承诺读写共享名目的用户列表实例:write list=abc,@g2read list=用户名/@组名功能:设定只读访问用户列表实例:read list=abc,@cuo自动执行参数:preexec=路径功能:指定客户机连接时要自动执行文件postexec=路径功能:指定客户机断开连接时要自动执行的文件root preexec=路径功能:指定客户机连接时要以ROOT用户身份自动执行的文件实例:root preexec=/bin/mount /dev/cdromroot postexec=路径功能:指定客户机断开连接时要以ROOT用户身份自动执行的文件实例:root postexec=/bin/umount /dev/cdrom1.3(3) 专门变量%S〔大写〕: 当前服务名%P〔大写〕: 当前服务的根名目%u: 当前服务的用户名%h: samba服务器的主机名%m: 客户机的NETBIOS名%L samba服务器的netbios名%v samba版本号%g 给定%u的所在的主工作组名%H 给定的%u的宿主名目%T 当前日期和时刻1.4文件实例:依照以下要求/etc/samba/smb.conf文件:⏹设置samba服务器的工作组名为linuxgroup,NETBIOS名为linux⏹设置samba服务器的访问模式为share⏹共享/soft名目,共享名为soft,该共享名目承诺所有的用户读写操作#vi /etc/samba/smb.conf修改内容如下:[global]Workgroup=linuxgroupNetbios name=linux………Security=share………[homes]………………[printers]………………[soft] //添加如下那个声明comment=applic soft sharedpath=/softbrowseable=yeswritable=yesguest ok=yespublic=yes2Samba 3.x SWAT预验证远程缓冲区溢出漏洞严峻程度:高威逼程度:远程治理员权限错误类型:边界检查错误利用方式:服务器模式CVE(CAN) ID:CAN-2004-0600受阻碍系统Samba 3.0.2Samba 3.0.3Samba 3.0.4详细描述SWAT是Samba Web治理工具。
samba服务器配置说明配置服务器密码:cnfoldcsamba相关命令grep -v '^#' smb.conf |grep -v '^;' |grep -v '^$' 确认是否把设定给批注了/etc/rc.d/init.d/smb restart 重启smb服务vi /etc/samba/smb.conf 修改samba配置文件smb.confifconfig eth0 169.254.235.182 netmask 255.255.0.0 up 临时修改IP地址和网关samba设定档:/etc/samba/smb.conf这个是samba最主要的设定档/etc/samba/lmhosts这个档案主要目的在对应NetBIOS name 与该主机名称的IP/etc/samba/smbpasswd 档案预设不存在是samba预设使用者密码对应表需要权限root且设定为600samba相关目录:/usr/share/doc/samba 这个目录包含了samba的所有相关技术手册/var/log/samba这个目录是samba预设的登录文件放置目录可以查看是否被入侵/usr/share/samba/codepages这个目录是放置各个语言的支持格式需要支持中文就靠codepage.950支持。
当然修改smb.conf是最直接的。
[global]workgroup : 工作群组:同一个局域网络内,要具有相同的workgroupnetbios name : 主机名称:这个主机名称就是netbios 的名字!请注意,如果你没有设定netbios 的话,预设的netbios 会以hostname 来替代!server string: 这个是主机的说明,随便写写没关系!security : 这个重要,是用来规定samba 主机的安全登入项目,有底下几种:share :不进行安全登入,亦即没有设定账号与密码user:设定主机的密码文件作为登入的验证档案,这与底下的smb passwd file有关domain :就是让您的samba 作为PDC 啰!log file : 登录文件放置的目录所在地[webpage]comment = my home page 这个是目录说明path =/var/www/htmlread only =no 是否只读public = yes 是否让所有可以登入的使用者看到这个项目writable =yes 是否可以写入读写权限值最后出现的那个设置值为主这里起作用的是 writable而不是read onlycreate mode =0664directory mode =0775 这两个mode都与权限有关samba变量%s :取代目前的设定项目值,所谓的『设定项目值』就是在里面的内容!举例来说:[homes]valid users=%s因为 validusers是允许的登入者,设定为%s 表示任何可登入的使用者都能够登入的意思~今天如果test 这个使用者登入之后,那个[homes] 就会自动的变成了[test]了!这样可以明白了吗?!%s 的用意就是在替换掉目前[] 里面的内容啦!%m :代表 client端的NetBIOS 主机名称喔!例如上面案例的登录档!%M :代表 client端的Internet 主机名称喔!就是HOSTNAME 。
6.1Samba配置文件Samba配置文件(缺省为f)使用Windows的.ini文件格式。
示例Samba配置文件:[global]workgroup = METRANencrypt passwords = yeswins support = yeslog level = 1max log size = 1000read only = no[homes]browsable = nomap archive = yes[printers]path = /var/tmpprintable = yesmin print space = 2000[test]browsable = yesread only = yespath = /usr/local/samba/tmp配置文件建立了一个工作组(workgroup),在这个组中,Samba认证用户使用加密的密码和缺省的用户级安全策略(user-level security method.)。
Samba提供WINS协议(Windows Internet Name Server(Windows网际名字服务))支持。
我们配置使用很基本的事件日志,日志文件不超过1MB。
The [homes] share has been added to allow Samba to create a disk share for the home directory of each user who has a standard Unix account on the server。
另外,在服务器注册的每一个打印机,都公开可用,/usr/local/samba/tmp目录被映射为一个只读共享区。
6.1.1配置文件结构从更高层次看配置文件,结构如下:[global]...[homes]...[printers]...[test]...方括号中的名字描述了cmb.conf文件中的唯一段;每个段名描述该段所引用的共享资源或者服务。
Samba服务配置手册目录1.Samba的概述 (1)2.Samba服务的安装 (1)3.Samba服务的配置文件 (2)4.Samba服务的密码文件 (3)5.启动和停止Samba服务 (4)6.Linux客户端的访问(访问Windows共享资源) (4)7.Windows客户端的访问(访问Linux共享资源) (5)8.Samba服务的文件共享实现流程(*) (5)9.Samba缷载 (6)10.Samba相关命令 (6)1.Samba 的概述在网络中架设Samba 服务器能够使Windows95以上的Windows 用户通过“网上邻居”或在运行中输入Linux 系统IP 直接访问Linux 上的共享资源,也能使Linux 用户利用SMB 客户端程序访问Windows 的共享资源。
(注:Samba 属于GNU Public License(简称GPL)软件,因此,任何用户都可以合法且免费地使用它。
如果需要最新版本,可以从Samba 公司的官方网站( )上获得。
)2.Samba 服务的安装Red Hat Linux7.2版本在默认情况下没有Samba 服务程序需要人工上传程序进行安装。
而默认情况下Red Hat Linux9.0及Red Hat Enterprise Linux 安装程序会将Samba 安装在系统上(但在装这两个系统时,还是要注意看一下是否选择了该程序,如果没有,则选中它)。
使用下面的命令检查系统是否已经安装了Squid 或查看安装了何种版本:命令执行结果如下图所示:这表示Samba 服务程序已安装,后面为版本号。
如果还未安装,可以在Linux 系统光盘(一般在第二张盘里)的RedHat/RPMS目录下Samba 服务程序的RPM 安装包文件;也可以直接上传Samba 服务程序进行安装。
在这里对Linux7.2系统我们使用Samba 服务程序版本为:samba-common-2.2.1a-4.i386.rpmsamba-2.2.1a-4.i386.rpmsamba-client-2.2.1a-4.i386.rpm在/etc 下用建立一个samba 文件夹命令如下:利用rz 上传命令将这几个安装包文件上传到/etc/samba/目录下。
Samba配置文件常用参数详解Samba的主配置文件叫smb.conf,默认在/etc/samba/目录下。
smb.conf含有多个段,每个段由段名开始,直到下个段名。
每个段名放在方括号中间。
每段的参数的格式是:名称=指。
配置文件中一行一个段名和参数,段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源。
段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。
使用testparm –v命令可以详细的列出smb.conf支持的配置参数。
全局参数:==================Global Settings =================== [global]config file = /usr/local/samba/lib/smb.conf.%m说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。
如果文件不存在,则该项无效。
这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。
比如,你想让PC1(主机名)这台电脑在访问Samba Server 时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file =/etc/samba/host/smb.conf.%m。
这样当PC1请求连接Samba Server时,smb.conf.%m 就被替换成smb.conf.pc1。
这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
workgroup = WORKGROUP说明:设定Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %v说明:设定Samba Server 的注释,可以是任何字符串,也可以不填。
宏%v表示显示Samba 的版本号。
netbios name = smbserver说明:设置Samba Server的NetBIOS名称。
如果不填,则默认会使用该服务器的DNS 名称的第一部分。
netbios name和workgroup名字不要设置成一样了。
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
hosts allow = 127. 192.168.1. 192.168.10.1说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。
可以用一个IP表示,也可以用一个网段表示。
hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50hosts allow=172.17.2.0/255.255.0.0表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接hosts allow=M1,M2表示容许来自M1和M2两台计算机连接hosts allow=@xq表示容许来自XQ网域的所有计算机连接max connections = 0说明:max connections用来指定连接Samba Server的最大连接数目。
如果超出连接数目,则新的连接请求将被拒绝。
0表示不限制。
deadtime = 0说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。
单位是分钟,0代表Samba Server不自动切断任何连接。
time server = yes/no说明:time server用来设置让nmdb成为windows客户端的时间服务器。
log file = /var/log/samba/log.%m说明:设置Samba Server日志文件的存储位置以及日志文件名称。
在文件名后加个宏%m (主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。
max log size = 50说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
security = user说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。
账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。
此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
passdb backend = tdbsam说明:passdb backend就是用户后台的意思。
目前有三种后台:smbpasswd、tdbsam 和ldapsam。
sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。
smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。
数据库文件叫passdb.tdb,默认在/etc/samba目录下。
passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。
我们也可以使用pdbedit命令来建立Samba账户。
pdbedit命令的参数很多,我们列出几个主要的。
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]”–u username:暂停该Samba用户的账号。
pdbedit –c “[]”–u username:恢复该Samba用户的账号。
3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。
首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”encrypt passwords = yes/no说明:是否将认证密码加密。
因为现在windows操作系统都是使用加密密码,所以一般要开启此项。
不过配置文件默认已开启。
smb passwd file = /etc/samba/smbpasswd说明:用来定义samba用户的密码文件。
smbpasswd文件如果没有那就要手工新建。
username map = /etc/samba/smbusers说明:用来定义用户名映射,比如可以将root换成administrator、admin等。
不过要事先在smbusers文件中定义好。
比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows 用户的习惯。
guest account = nobody说明:用来设置guest用户名。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
domain master = yes/no说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。
local master = yes/no说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。
如果设为no,则永远不会成为本地网域主浏览器。
但是即使设置为yes,也不等于该Samba Server 就能成为主浏览器,还需要参加选举。
preferred master = yes/no说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。
如果该参数指定为yes时,最好把domain master也指定为yes。
使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。
os level = 200说明:设置samba服务器的os level。
该参数决定Samba Server是否有机会成为本地网域的主浏览器。
os level从0到255,winNT的os level是32,win95/98的os level是1。
Windows 2000的os level是64。
如果设置为0,则意味着Samba Server将失去浏览选择。
如果想让Samba Server成为PDC,那么将它的os level值设大些。
domain logons = yes/no说明:设置Samba Server是否要做为本地域控制器。
主域控制器和备份域控制器都需要开启此项。
logon . = %u.bat说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。
如果设置成%u.bat,那么就要为每个用户提供一个登陆档。