linux smbconf详解Word格式文档下载.docx
《linux smbconf详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《linux smbconf详解Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。
说明限制允许连接到SambaServer的机器,多个参数以空格隔开。
表示方法可以为
完整的IP地址,如192.168.0.1
网段,如192.168.0.
例hostsallow=192.168.1.192.168.0.1表示允许192.168.1网段的机器网址为192.168.0.1的机器连接到自己的sambaserver
32行printcapname
语法printcapname=<
打印机配置文件>
预设printcapname=/etc/printcap
说明设定sambasrever打印机的配置文件
例printcapname=/etc/printcap设定sambasrever参考/etc/printcap档的打印机设定
33行loadprinters
语法loadprinters=<
yes/no>
预设loadprinters=yes
说明是否在开启sambaserver时即共享打印机
38行printing
语法printing=<
打印机类型>
预设printing=lprng
说明设定sambaserver打印机所使用的类型,37行为目前所支持的类型
42行guestaccount
语法guertaccount=<
帐户名称>
预设guertaccount=pcguest
说明设定访问sambaserver的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"
nobody"
用户
例guertaccount=andy设定设定访问sambaserver的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限
46行logfile
语法logfile=<
日志文件>
预设logfile=/var/log/samba/%m.log
说明设定sambaserver日志文件的储存位置和文件名(%m代表客户端主机名)
49行maxlogsize
语法maxlogsize=<
?
KB>
预设maxlogsize=0
说明设定日子文件的最大容量,单位KB这里的预设值0代表不做限制
53行security
语法security=<
等级>
预设security=user
说明设定访问sambaserver的安全级别共有四种
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由sambaserver负责
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台sambaserver作身份验证
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
60行passwordserver
语法passwordserver=<
IP地址/主机名>
预设passwordserver=<
NT-Server-Name>
说明指定某台服务器(包括windows和linux)的密码,作为用户登入时验证的密码
其他此项需配合security=server时,才可设定本参数
64行passwordlevel
65行usernamelevel
语法passwordlevel=<
位数>
usernamelevel=<
预设passwordlevel=8
usernamelevel=8
说明设定用户名和密码的位数,预设为8位字符
70行encryptpasswords
语法encryptpasswords=<
预设encryptpasswords=yse
说明设定是否对samba的密码加密
71行smbpasswdfile
语法smbpasswdfile=<
密码文件>
预设smbpasswdfile=/etc/samba/smbpasswd
说明设定samba的密码文件
130行localmaster
语法localmaster=<
预设localmaster=no
说明设定sambaserver是否要担当LMB角色(LMB负责收集本地网络的BrowseList资源),通常无特殊原因设为no
134行oslevel=33
语法oslevel=<
数字>
预设oslevel=33
说明设定sambaserver的oslevel.oslevel从0到255.winNT的oslevel为33,win95/98的oslevel是1.
若要拿sambaserver当LMB或DMB则它的oslevel至少要大于NT的33以上
139行domainmaster
语法domainmaster=<
预设domainmaster=yes
说明设定sambaserver是否要担当DMB角色(DMB会负责收集其他子网的BrowseList资源),通常无特殊原因设为no
143行preferredmaster
语法preferredmaster=<
预设preferredmaster=yes
说明设定sambaserver是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.
(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
163行winssupport
语法winssupport=<
预设winssupport=yes
说明设定sambaserver是否想网络提供WINS服务,通常无特殊原因设为no.
除非所处网络上没有主机提供WINS服务且需要此台sambaserver提供WINS服务是才设yes
其他winssupport和winsserver只能选择一个
167行winsserver
语法winsserver=<
预设winsserver=w.x.y.z
说明设定sambaserver是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes
其他winssupport和winsserver
例winsserver=192.168.0.1表示sambaserver要使用192.168.0.1提供的WINS服务
#==============================ShareDefinitions=============================
[homes]
comment=HomeDirectories
browseable=no
writable=yes
validusers=%S
使用者本身的"
家"
目录,当使用者以samba使用者身份登入sambaserver后,
sambaserver底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]
<
指令1>
=(参数)
指令2>
..........................
要提供分享资源时,须先把欲分享的资源以[]符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hidedotftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security=share时此项才起作用)
guestok--------是yes/否no公开共享,若为否则进行身份验证(只有当security=share时此项才起作用)
readonly-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与readonly发生冲突时,无视readonly
vaildusers-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalidusers---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
readlist-------设定此名单内的成员为只读(用户名/@组名)
writelist------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
createmask-----建立文件时所给的权限
directorymask--建立目录时所给的权限
forcegroup-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
forceuser------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allowhosts-----设定只有此网段/IP的用户才能访问共享资源
allwohosts=网段exceptIP
denyhosts------设定只有此网段/IP的用户不能访问共享资源
allowhosts=本网段指定IP指定IP
denyhosts=指定IP本网段指定IP
Samba使用大全(绝对经典)
(一)samba服务器
Samba协议基础
在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(ServerMessageBlock)协议。
这个协议被Microsoft用于它们LanManager和WindowsNT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。
因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS(CommonInternetFileSystem),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。
因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用WindowsNT服务器一样,使用Unix计算机上的资源了。
Samba是用来实现SMB的一种软件,它的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMB(ServerMessageBlock)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows计算机看到。
它的功能有:
1.共享Linux磁盘给Win95/NT
2.共享Win95/NT磁盘给Linux机器
3.共享Linux打印机给win95/NT
4.共享win95/NT打印机给Linux机器。
同时它的文件服务功能比NT系统还高,而且在Windows2000之前就提供了用户磁盘空间限制的功能。
Samba的配置
在我写这篇文章的时候,Samba的版本已经到了2.2.2了,需要的可以通过ftp:
//samba.org/pub/samba/Binary_Pa...011013.i386.rpm得到最新的rpm安装包。
然后执行rpm-Uvhsamba-2.2.2-20011013.i386.rpm来安装或者升级它。
安装完后,可以看见/etc/samba这么一个目录,里面存放和Samba相关的一些文件,最主要的是smb.conf,现在根据配置文件讲讲它的配置选项:
全局设置:
workgroup=MYGROUP
定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)。
serverstring=MYSambaServer
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。
这里说一下samba定义的变量:
%S=当前服务名(如果有的话)
%P=当前服务的根目录(如果有的话)
%u=当前服务的用户名(如果有的话)
%g=当前用户说在的主工作组
%U=当前对话的用户名
%G=当前对话的用户的主工作组
%H=当前服务的用户的Home目录
%v=Samba服务的版本号。
%h=运行Samba服务机器的主机名
%m=客户机的NETBIOS名称
%L=服务器的NETBIOS名称
%M=客户机的主机名
%N=NIS服务器名
%p=NIS服务的Home目录
%R=说采用的协议等级(值可以是CORE,COREPLUS,LANMAN1,LANMAN2,NT1)
%d=当前服务进程的ID
%a=客户机的结构(只能识别几项:
Samba,WfWg,WinNT,Win95)
%I=客户机的IP
%T=当前日期和时间
hostsallow=网络或者主机
这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和192.168.2.1/32访问,就用hostallow=192.168.1.192.168.2.1127.0.0.1(网络注意后面加”.”号,各个项目间用空格隔开,记得把本机也加进去)
printcapname=printcapFile
到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息
loadprinters=yes|no
设定是否自动共享打印机而不用设置下面的[printer]一节的相关东西
printing=PrintSystemType
定义打印系统的类型,缺省是lprng,可选项有:
bsd,sysv,plp,lprng,aix,hpux,qnx。
guestaccount=pcguest
定义游客帐号,而且需要把这个帐号加入/etc/passwd,不然它就用缺省的nobody
logfile=LogFileName
定义记录文件的位置LogFileName(一般是用/var/log/samba/%m.log)
maxlogsize=size
定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
security=security_level
定义Samba的安全级别,按从低到高分为四级:
share,user,server,domain。
它们对应的验证方式如下:
share:
没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
user:
samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
server:
和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。
如果递交失败,就退到user安全级。
domain:
这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
后面三种安全级都要求用户在本Linux机器上也要系统帐户。
否则是不能访问的。
passwordserver=<
当前面的security设定为server或者domain的时候才有必要设定它。
passwordlevel=n
这是设定针对一些SMB客户像OS/2之类而设的,这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。
n越大,组合的次数就越多,验证时间就越长,安全性也会因此变得越低。
例如n=2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合后的结果可以是:
Abcd,aBcd,abCd,abcD,abcd,ABcd,AbCd,AbcD,aBCd,aBcD,abCD。
所以如果没有必要,就把n定为是零。
这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。
usernamelevel=n
这个是对于用户名的情况,说明和上面一项类似。
encryptpasswords=yes|no
设置是否对密码进行加密,samba本身有一个密码文件/etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/samba/smbpasswd密码文件进行验证。
但是在Windows95OS/R2以后的版本和WindowsNTSP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改,比较麻烦,好的方法就是把这里的这个开关设置为yes。
smbpasswdfile=smbPasswordFile
设置存放samba用户密码的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。
sslCAcertFile=sslFile
当samba编译的时候支持SSL的时候,需要指定SSL的证书的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。
unixpasswordsync=yes|no
passwdprogram=/usr/bin/passwd%u
passwdchat=*New*UNIX*password*%n
*ReType*new*UNIX*password*%n
*passwd:
*all*authentication*tokens*updated*successfully*
这三项设置能否从windows的应用程序修改unix系统的用户密码
usernamemap=UsermapFile
指定用户映射文件(一般是/etc/samba/smbusers),当我们在这个文件里面指定一行root=administratoradmin的时候,客户机的用户是admin或者administrator连接时会被当作用户root看待。
include=MachineConfFile
指定对不同机器的连接采用不同的配置文件MachineConfFile(一般为了灵活管理使用/etc/samba/smb.conf.%m,由于采用了samba的变量,把配置文件和客户机的NETBIOS名称关联起来,能很容易地控制这些客户机的权限和设置)。
socketōptions=TCP_NODELAYSO_RCVBUF=8192SO_SNDBUF=8192
这个是网络socket方面的一些参数,能实现最好的文件传输性能。
相关的选项还有SO_KEEPALIVE、SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),带*号的要指定数值。
一般如果在本地网络,就只用IPTOS_LOWDELAY,如果是有一个本地网络的,就用IPTOS_LOWDELAYTCP_NODELAY,如果是广域网络,就试试IPTOS_THROUGHPUT。
interfaces=interface1interface2
如果有多个网络接口,就必须在这里指定。
如interface=192.168.12.2/24192.168.13.2/24
remotebrowsesync=host(subnet)
这里指定浏览列表同步信息从哪里取得,如果用host(比如192.168.3.25)或者整个子网(192.168.5.255)。
★这里说明一下什么是浏览(Browse):
在SMB协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在Windows下使用网络邻居查看可以访问的计算机),这个机制就被称为浏览(Browse)。
虽然SMB协议中经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。
只有必要的时候,才重新查找资源,例如使用Windows下的查找计算机功能。
但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为Browser,这些Browser通过记录广播数据或查询名字服务器来记