Samba使用和管理详细指南.docx
《Samba使用和管理详细指南.docx》由会员分享,可在线阅读,更多相关《Samba使用和管理详细指南.docx(11页珍藏版)》请在冰豆网上搜索。
Samba使用和管理详细指南
Samba使用和管理详细指南
出处:
http:
//61.132.47.12/work/RedHat-lin...cf%b8%bd%cc.htm
Samba使用和管理详细指南
Windows最令人感到方便的特色莫过于『网上邻居』的档案分享功能,有了这项功能后,使得局域网络里资料的传递与分享得以落实。
以往在Linux的世界里其实也有NFS可以在UnixLike的操作系统下做档案分享,但是与Windows作业环境的整合还是缺乏沟通的桥梁。
SambaServer建立了Linux与Windows环境的沟通管道,也可以做为PrintServer提供Windows远程联机打印;若是使用SambaServer搭配ApacheWebServer,可在Windows环境下藉由『网上邻居』登入Linux主机里使用者的个人帐号放置网页目录(当然是在局域网络内才行),有了这项功能,编辑个人网页就如同在本机操作一般方便。
除此之外,SambaServer也可以完全取代NT/2000PDC(PrimaryDomainControler)成为NT/2000网域主控者管理NT/2000网域机群,当然,Samba也可以将目录、档案分享给其它UnixLike、Mac、OS/2的机器使用,应用层面可以说是相当广阔,更令人惊讶的是SambaServer也可做为WINSServer,若配合DHCPServer更可以管理大型NT/2000网域,想想!
这个集合众多优点的服务器,是不是会对不同机种的操作系统工作环境在整合上有着极大的助益呢?
Samba可以定位为一套功能极为强大的档案服务器软件,所谓档案服务器就是将档案伺服主机上的目录分享出来,让您可以透过网络对分享出来的目录里的档案,做执行、读取、写入等动作。
基本上NT/2000的网域是使用NetBEUI做计算机命名服务,使用广播封包来侦测网络上有哪些计算机、哪些目录提供资源共享,而Samba与UNIX主机间的沟通(如目录、档案分享)是透过TCP/IP协议达成任务,Samba若要与NT网域做沟通,透过TCP/IP当然是行不通的,只好使用NetBIOS对NT网域做广播,让Windows机器能够认识它,进而成为NT网域成员;因此Samba是使用smbdDaemon透过TCP/IP联系UnixLike主机,而使用nmbdDaemon透过NetBIOS对NT/2000网域做联系,也就是说Samba使用两种机制达成资源共享的目的。
注:
smbdDaemon主要用来处理档案分享和打印分享服务;nmbdDaemon则用来处理WINS名称解析服务及NTBrowserService(即网上邻居)。
要使用SambaServer相当容易,在安装好Redhat后,只要设定好工作群组,激活SambaServer后就可以正常运作,您可以立即在Windows下的『网上邻居』里看到执行Samba服务的Linux主机名称。
samba-2.0.7-21ssl
samba-common-2.0.7-21ssl
samba-client-2.0.7-21ssl(samba所需要的套件,请随时更新!
!
)
想让开机自动激活samba吗?
#chkconfig--level345smbon
或是手动激活
#/etc/rc.d/init.d/smbstart
以上是samba的简单设定,接着介绍samba的设定及其它应用
当安装完samba套件后,也立即拥有以下的samba工具:
smbclient:
利用这个工具可连接其它Unixlike的SambaServer,或是连接Windows机器,以取得档案分享服务。
testparm:
这个工具可让您测试smb.conf组态档定义是否正确。
testprns:
这个工具可让您测试定义在printcap档里的列表机。
smbstatus:
这个工具可用来显示目前client端连接到SambaServer的联机状况。
nmblookup:
这个工具可使用NT/2000网域内的主机名称查询出对应的IP地址。
smbpasswd:
这个工具可用来建立、变更登入到Sambaserver的加密密码。
swat:
这个工具让您可使用web接口(如:
IE、Netscape)对SambaServer做组态设定。
先确定在/etc/services档案里面这些句子没有被批注掉﹕
netbios-dgm138/tcp#NETBIOSDatagramService
netbios-dgm138/udp
netbios-ssn139/tcp#NETBIOSsessionservice
netbios-ssn139/udp
然后是建立/etc/lmhosts档案(如果它不存在的话)﹐建立起各主机的对应。
我们只需将MSWinndows主机对应建立起来则可﹐但一定要包括作为SAMBA服务器的Linux主机本身﹕
vi/etc/lmhosts
192.168.0.17redhat52
192.168.0.15PII266
192.168.0.12nt4ser2
192.168.0.22redhat62
192.168.0.16w2000ad
然后是修改/etc/samba/smb.conf这个档案
########################################################
设定Samba的组态档最基本可分为三个阶段:
Server基本设定、使用者home目录的设定、目录分享设定。
至于「共享列表机设定」则是当您有需要时再做设定。
若是在Samba的组态设定档/etc/smb.conf档里做设定,则是针对[global]、[homes]、[分享目录]三大项目做设定。
vi/etc/samba/smb.conf
若是在etc/smb.conf档里做设定,则是在[global]项目里设定如下:
[global]
workgroup=MYGROUP;不分大小写
unixpasswordsync=Yes
设定Linux与samba使用相同的密码
domainmaster=yes
设定samba成为PDC(网域主控者),注意:
若是将Samba设定为独立服务器,则无须设定此项。
clientcodepage=950
如果想使用者能看到中文文件名称﹐可以将这行加进[global]设定中
[homes]
browseable=yes
writable=yes
public=yes
writelist=@staff
samba内定帐号拥有者可对帐号目录做读写动作,若想让某些使用者也有权利对此目录做写入动作时,请在「Users」卷标的「writelist」字段里输入其它使用者名称,如:
abc、test、working。
所谓的使用者home目录是指,以使用者帐号登入SambaServer后个人所拥有的帐号目录,如:
以帐号root登入后,内定的个人目录是/root。
一般而言,对「使用者home目录的设定」着重于是否将此个人目录分享出来及设定存取的权限,其余项目大抵上是无需设定。
注意:
若您选择了「Publicaccess」、「Writable」两个选项,并不代表所有的使用者皆有权利对您所分享的home目录下的档案具有写入权,还得视档案原来在Linux下的权限设定,例如,档案权限为rwxr-xr-x(chmod755),表示只有拥有者具可写入权,此点务必留意。
[works]
comment=shareworks
browseable=yes
path=/works
public=yes
writable=yes
目录分享设定
使用Samba最大的用途当然是将特定的目录分享出去,分享目录的原则不外乎是读写权限及分享对象,把握此原则就可很迅速的设定好分享目录
用testparm来测试一下smb.conf的语法是否正确,或是使用smbclient-L(computer_name)
重新激活SAMBA
/etc/rc.d/init.d/smbrestart
########################################################3
将Samba做为WINSServer
Samba最大的功用除了做fileServer外,还可以做WINSServer。
WinsServer最大的好处是可在NT/2000网域内做名称解析,传统上在Internet上做FQDN(FullQualityDomainName)与IPaddress之间的转换是藉由DNS做解析,但在局域网络里尤其是NT/2000网域,当您使用NT/2000的WINSServer与NT/2000的DNS做配搭时,假设有一台主机名称叫做abc,所属领域是.tw,IP地址是192.168.0.229,目前此部主机尚未在DNS上注册,但是在DNS上激活正反查都可藉由WINS解析,当您使用nslookup查询abc主机时,您会发现可解析出192.168.0.229,并且观察DNS上正查区域内,DNS自动将abc以A资源纪录指定IP192.168.0.229,而反查区域内,DNS自动将229.0.168.192.in-addr.arpa指到.tw,这就是WINS的好处。
以往在NT/2000网域内使用DNS+WINSServer可免去在DNS上登录主机记录,若再搭配DHCPServer那么连Client端主机的IP也免输入,一切由DHCPServer分配动态IP,再由DNS+WINSServer自动登录主机FQDN与IP解析关系,这个简单、易用组织网域的方法,如今也可以由DNS+Linux下的Samba+Linux下的DHCP来取代,因为Samba可担任WINSServer或指定WINSServer做网域名称解析。
假设目前欲做WINS+DHCP的Linux主机IP为192.168.0.229,其设定方式如下:
首先确定已激活DNSServer,并且在DNS里启用正、反查皆可透过WINS做解析。
以下设定Samba为WinsServer
winsserver=192.168.0.229
设定完成后,可使用nmblookup查询名称解析,假设目前有一主机其名称为abc,使用动态分配IP联机,所配得的IP地址是192.168.0.100,那么当您使用nmblookupasp做名称查询时,则出现下列画面:
[root@abctesting]#nmblookupabc
192.168.1.100abc<00>
当然,使用DNS+DHCP+WINS除了可分配动态IP外,『网上邻居』、区域内主机FQDN与IP的对应关系皆可正常运作。
Samba除了可做为FileServer、WinsServer外,还可做为PrinterServer,设定方法其为简单:
首先使用Redhat的printtool,列表机类型设定使用本机列表机。
#linuxconf。
按一下「Config」、「Networking」、「Servertasks」。
按一下「Sambafileserver」、「Defaultsetupforprinters」。
选择[X]Thisshareisenable选项,可做打印分享。
若选择[X]Publicaccess选项,任何人皆可使用此部PrinterServer,不限定只有拥有登入Samba帐号使用者。
接下来设定win95/98/NTClient端
在桌面上按两下「我的计算机」、「打印机」、「新增打印机」。
选择「网络打印机」、「下一步」。
出现「网络队列或路径名称」对话窗后,请使用「浏览」钮挑选SambaServer所分享出来的打印服务,如:
\\abc\lp。
接着设定列表机的驱动程序后,即可大功告成。
您会发现有了Samba后,NT/2000所具备的优点似乎皆被取代了!
###################################################################
Samba存取控制
NT/2000对分享出的目录可针对特定群组、使用者做权限管理,同样的,Samba也能做到,并且能够更精细的权限管理。
在Samba里对于目录的管理可区分为『使用者帐号目录』与『共享目录』,『使用者帐号目录』是在Samba的「Defaults」项目里做设定,『共享目录』则是在Samba的「Diskshares」项目里做设定,其设定方式是不一样的。
首先就以「Defaults」项目为例,说明如何做Samba存取控制:
若要针对登入Samba的来源主机做允许登入Samba主机,请在Allowhosts栏里输入来源主机,如:
192.168.0.0/255.255.255.0;表示允许192.168.0.classC登入Samba。
abc,test,working;表示允许此三部主机登入Samba。
@mygroup;表示允许mygroup群组内的成员登入Samba。
若要针对登入Samba的来源主机做不允许登入Samba主机,请在Denyhosts栏里输入来源主机,如:
192.168.0.25;表示不允许此部主机登入Samba。
cracker,badboy;表示不允许此两部主机登入Samba。
@mygroup;表示不允许这个工作群组成员登入Samba。
再以「Diskshares」项目为例,说明如何做Samba存取控制:
Allowhosts栏、Denyhosts栏的设定方式与上述相同。
「Userlist」栏可用来设定哪些使用者可使用分享目录,例如:
aaa,bbb,ccc,ddd,root;表示此五个帐号可使用分享目录。
@cracker;表示属于cracker群组的帐号可使用分享目录。
@cracker,abc;表示cracker群组成员及abc可使用分享目录。
「Writelist」栏可用来设定哪些使用者具有写入权,例如:
aaa,bbb,root;表示此三个帐号具有写入权。
@cracker;表示属于cracker群组的帐号具有写入权。
@cracker,abc;表示cracker群组成员及abc具有写入权。
「Validusers」栏可用来设定哪些使用者可登入Samba,例如:
aaa,bbb,root;表示此三个帐号登入Samba。
@cracker;表示属于cracker群组的帐号登入Samba。
@cracker,abc;表示cracker群组成员及abc登入Samba。
「Max.connections」栏可用来设定此分享目录的最大联机数量,例如:
10。
内定值是0,表示没有联机限制。
mbaClient
Samba除了提供Server方面的服务外,也可以充当SambaClient端登入其它SambaServer或Windows所分享出来的目录,要享用这些网络上的分享资源并不难,用法如下:
mount-tsmbfs-ousername=test,password=test//abc/test/data/test
#################################################################
结果就跟网络芳邻一样,别人(//abc/test)的目录就如同是本机的(/data/test)!
!
网络芳邻linux版--LinNeighborhood
上述指令是利用文字模式下mount指令达成的,那么在XWindow下是否可以像网络芳邻一样的操作呢?
?
当然可以,这里介绍LinNeighborhood
原始网站:
http:
//www.bnro.de/~schmidjo/
下载网址:
http:
//milkyway.thn.htu.se/~ds98rito/
下载之后就直接安装
rpm-ivhLinNeighborhood-0.6.3-1.i386.rpm
若是GNOME,则按左下角的大脚-->"程序"-->"应用程序"-->"LinNeighborhood"或者是从xterm(终端窗口模式下)执行LinNeighborhood&(有分大小写)
第一次执行的话要先设定"Options"-->"Preferences",设定要登入的Windows工作群组
################################################################
然后在本机的图标上按鼠标右键,执行"rescangroup",重新搜寻工作群组
然后找到其它Windows的机器名称,按鼠标右键,执行"mount"
设定要mount到Linux上的path,就大功告成了!
!
检测
若想要知道目前Samba的联机状态,可以使用smbstatus工具
[root@vm_clesamba]#smbstatus
Sambaversion2.0.7
Serviceuidgidpidmachine
----------------------------------------------
abc1234abc1234abc12341240abcedf(192.168.0.229)SunMay617:
01:
092001
Nolockedfiles
Sharemodememoryusage(bytes):
1048464(99%)free+56(0%)used+56(0%)overhead=1048576(100%)total
另外要注意/etc/hosts里,是否有加入以下内容:
IPhosts_name
如果没有加入上面那一行,/etc/rc.d/init.d/smbstart时都是[OK],但是其实都没激活,可以检查/var/log/samba/*,看看log讯息就知道了!
!
#################################################################
Samba的Client端设定
若设定使用「Linux主机的帐号与密码做为登入SambaServer的帐号与密码」时,由于win95OSR2之前版本及NTSP3之前版本的密码机制是不加密的纯文字密码,当登入SambaServer时可传送不加密的纯文字密码给Samba,因而轻易认证登入。
而win98及NTSP3之后版本及WIn2000的密码机制是属于加过密的密码,当登入SambaServer时所传送的是加密的密码给Samba,因而无法认证登入,此时,必须为需要登入SambaServer的使用者帐号,利用smbpasswd这个工具程序建立登入Samba的密码,当windowsClient端登入Samba时,就可接受加过密的密码做为认证,不过此时就无需使用「Linux主机的帐号与密码做为登入SambaServer的帐号与密码」,因为已经为使用者建立属于登入Samba的密码。
必须注意的是:
登入Samba的使用者帐号必须是已存在于/etc/passwd文件内的Linux系统帐号,唯有如此,才能确保能使用个人帐号目录。
不加密的联机
由于Samba内定的接受密码机制属于纯文字密码,当设定好SambaServer端后,此时若Client端是Windows95OSR2之前的版本或是WinNTSP3之前的版本,在登入本机时(假设使用abc帐号),直接使用『网上邻居』即可看「home」、「abc」、「works」三个分享目录,这是因为Client传送纯文字密码到Server端做为认证。
若Client端是Windows95OSR2以后的版本或是WinNTSP3以后或是Win2000的版本,因为Client传送加密码到SambaServer端做为认证,则需设定为纯文字密码才可以与SambaServer联机。
您必须使用『登入记录编辑器』(regedit)对联机密码形式做设定:
Windows95/98==>samba_9x.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:
00000001
WindowsNT==>samba_nt.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]
"EnablePlainTextPasswor