Samba中文手册内容_第1页
Samba中文手册内容_第2页
Samba中文手册内容_第3页
Samba中文手册内容_第4页
Samba中文手册内容_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、Samba简介给Windows客户提供文件服务是通过samba实现的,凡架设过MSWindows网络的人都知道MSWindows网络的核心是SMB/CIFS,而samba也是一套基于UNIX类系统、实现SMB/CIFS协议的软件,作为UNIX的克隆,Linux也可以运行这套软件。和NT相比较,samba的文件服务功能一点也不亚于NT,效率很高,借助Linux本身,可以实现用户磁盘空间限制功能,NT到4.0版本还是无法实现这点,samba由samba小组(http;//)开发,更新速度很快,目前最高的版本是2.0.7版,是2000年4月25日发布的,每个更新版本在功能上都所增强,也修复了已知的BUG。本章所涉及到的技术内容以2.0.3版蓝本。目前各种Linux发布大都包含这套软件,如果你的Linux发布是ReadHat,则是以RPM形式提供,可以在安装Linux的时候选择这个软件,也可以单独安装,以root身份。rpm-isamba-2.0.3-8.i386.rpm,就可以了。如果你的Linux发布没有包含这个软件,可以从ftp;///pub/samba去下载。另外,您的Linux的核心要支持smbfs,一般各种发布已经把smbfs的支持包含进去,如果没有包含的话,就要重新编译核心,获得smbfs支持,具体怎么样编译核心请参阅相关文章。由于本章的内容是基于文件服务器,重点介绍samba在文件服务器上的应用。目前samba还不能完全代替WindowsNT,尤其是把samba设置成PDC,最好不要这样做,NTPDC非常复杂,samba还只能实现其中一部分功能。希望未来的版本可以做到。这套软件由一系列的组件构成,主要的组件有:smbdSMB服务器,给SMB客户提供文件和打印服务;nmbd,Netbios名称服务器,提供Netbios名称服务和浏览支持,帮助SMB客户定位服务器;smbclient,SMB客户程序,用来存取SMB服务器上的共享资源;testprns测试服务器上打印机访问的程序;testparms测试Samba配置文件的正确性的工具;smb.confsamba的配置文件;smbstatus这个工具可以列出当前smbd服务器上的连接;make_smbcodepage这个工具用来生成文件系统的代码页;smbpasswd这个工具用来设定用户密码;swatsamba的Web管理工具。二、怎么样配置samba实际上,samba安装完后,只要把/etc/smb.conf这个文件里的workgroup=XXXXX这个参数该为您的工作组,启动samba就可以运行了,但这根本不能符合我们的需要。samba的配置都是围绕smb.conf来进行的,配置方式有很多种,如果熟练的话可以手工编辑这个文件,也可以通过linuxconf来配置,而且samba本身带了一个基于web的管理工具swat,使用901端口,安装完samba后,它会在您机器的/etc/services的尾部加上一条:swat901/tcp#Addswatserviceusedviainetd在inetd.conf里填上:swatstreamtcpnowait.400root/usr/sbin/swatswat在浏览器的地址栏里键入http://youhostname:901/就可以进入swat对samba进行管理。下面就介绍怎么样手工配置这个文件以达到让samba成为一个符合需求的文件服务器。先看看一小段的smb.conf:#smb.confexample

[global]

workgroup=WORKGROUP

serverstring=SambaServer

hostsallow=27.

loadprinters=no

printcapname=/etc/printcap

guestaccount=guest

logfile=/usr/local/samba/var/log.%m

maxlogsize=50

security=user

socketoptions=TCP_NODELAY

[homes]

comment=HomeDirectories

browseable=yes

writable=yes

[printers]

comment=AllPrinters

path=/usr/spool/samba

browseable=no

guestok=no

如果定义了[printers]这个段,用户就可以连接在printcap文件里指定的打印机。当一个连接请求到来时,smbd去查看配置文件里已有的段,如果和请求匹配就用那个段,如果找不到匹配的段,但[home]段存在,就用[home]段。否则请求的共享名就当作是个打印机共项名,然后去寻找适合的printcap文件,看看请求的共享名是不是个有效的打印共享名。如果匹配,那么就克隆出一个新的打印机共享提供给客户。注意,[printers]服务必须是printable,如果指定为其它,服务器把拒绝加载配置文件。通常指定的路径应该任何人都有写入权限。[printers]

path=/usr/spool/public

writeable=no

guestok=yes

printable=yes

printerdriver=EpsonLQ-1600K()2.参数段里可以指定的参数非常多,有些参数是全局段才可以用的,而有些参数是任何段都可以用的,先介绍一些基本参数,明白这些基本参数,基本上就可以一般性地应用samba了,如果要更精细地控制samba,可以继续参考一些高级配置。另外,本章假设读者对MSWINDOWS网络是熟悉的,不熟悉的可以参考相关资料。全局参数2.1基本参数workgroup说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如:workgroup=wgp1。指明工作组为biosname说明:这个参数指定samba的netbios名,可以不设置,samba把会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1例如:netbiosname=public。指定NetBios名为public。serverstring说明:这个参数指定在浏览列表里的机器描述,和MSWINDOWS里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的samba%v,即samba尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。例如:serverstring=MasterFileServer2.2安全参数security说明:这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是user。security=user这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。securtiy=share这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源security=server和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。security=domain这种安全级别要求网络上存在一台NTPDC,samba把用户名和密码递交给NTPDC去验证。从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。encryptpasswords说明:是否对密码进行加密,samba本身可以维护一个密码文件/etc/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/passwd密码文件进行验证。这其中有些问题,之一就是在Windows95OS/R2以后的版本和WindowsNTSP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改。对于Windows95OS/R2以上的版本,可以在[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]里加一个十六进制值EnablePlainTextPassword=00000001。对于WINDOWSNTSP3以上的版本,可以在[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters]里加一个十六进制值EnablePlainTextPassword=00000001,这样就可以让它们能在网络上传送明文密码。另外,还有一件很烦人的事情就是NT系统,如果一个服务器是处于用户级别上的安全模式,又不支持密码加密传送的话,NT把拒绝和服务器连接,除非服务器向用户提示要密码。这在实际应用中会出现什么情况呢。如果你在NT机器有个帐户user1,在Linux机器上也有个帐户user1,密码都是一样,但你去和Linux机器上的共享连接的时候,NT就会提示你错误的密码或未知的用户名,要求你再次输入用户名和密码,NT才和服务器连接。如果你映射了Linux上的共享资源作为NT的一个网络驱动器,那么NT在下次启动试图重新连接这个网络驱动器时,又会提示你错误密码或未知用户名烦得很。所以一般samba的应用基本都设定为yes:encryptpasswords=yes。当然,samba的用户是基于Linux系统用户的,sambad的加密工具是smbpasswd,最简单的用法是smbpasswd-ausername这里的username必须是/etc/passwd里存在的用户名,然后会提示输入密码和确认密码,会生成一个新的密码条目,放在/etc/smbpasswd这文件里。另外,samba提供了一个工具—mksmbpasswd.sh,这是shell脚本,可以从/etc/passwd文件里生成smbpasswd文件,用法是:cat/etc/passwd|mksmbpasswd.sh>/etc/smbpasswd。把passwd里的用户都加到smbpasswd里。从安全起见,smbpasswd这个文件的存取权限请设为600。usernamemap说明:这个参数可以让你指定一个文件包含来自客户机的用户名与Linux系统用户名之间的映射,文件的格式是每行一个映射,映射的格式是:Linuxusename=clientusername...。例如root=adminadminstrator这样,当客户机的用户是admin或administrator时,就被转换成root。这个功能对用户管理很方便,可以让管理员不需要对客户或服务器上的用户帐号大动干戈。文件名通常用默认的/et/smbuserspasswordlevel说明:这是针对一些SMB客户像WindowsforWorkgroup、OS/2之类而设的,像WFW这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。这个值越大,组合的次数就越多,验证时间就越长,安全性也越低!例如:如果这个值是2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合的密码可以是下列:Abcd,aBcd,abCd,abcD,abcd,ABcd,AbCd,AbcD,aBCd,aBcD,abCD。所以如果没有必要,就把这个值定为是零(一般应该是没这必要,现在谁还用WFW这样的系统)。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。即使是这样,也还存在着一定的安全性问题。guestaccount说明:这个参数指定guest级帐户的用户名,可以是nobody、ftp,guest级别的用户可以不要密码就访问给定的guest服务。hostallow说明:这个参数指定那些机器可以访问samba,例如:hostallow=27.指定里的所有机器都可以访问。如果不允许子网里的一台机器访问,可以这样设:hostallow=192.168.1.EXCEPT3禁止3访问。hostdeny说明:和hostallow相反是指定那些机器不能访问,格式一样。2.3日志记录参数logfile说明:这个参数指定日志文件的名称,路径一般放在/var/log/samba,可以在文件名后加个宏%m表示对每台访问samba的机器都单独记录一个日志文件。例如:logfile=/var/log/samba/log.%m,如果host1、host2这台机器访问过samba,就会留下log.host1、log.host2这两个日志文件。maxlogsize说明:这个参数指定最大日志文件的大小,以KB为单位。例如:maxlogsize=50k。2.4协议参数announceversion说明:指定服务器的宣告版本号,默认是4.2,如果在WINDOWS的网上邻居里查看samba服务器的属性,就可以看见在类型一行里有WindowsNT4.2Server的字样。一般不要去更改它,如果你要让samba模拟NT像一点的话,可以改成4.0。2.5计算机浏览参数oslevel说明:oslevel的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。preferredmaster说明:这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。指定该参数为yes时最好把domainmaster也指定为yes。用这个参数的时候要注意的是在samba服务器所在的子网上如果有其它的机器(不管是WINDOWSNT还是另一个samba服务器)也指定为首要的主浏览器时,这些机器都会因为争夺主浏览器而在网络上广播,引起不必要的网络性能下降。localmaster说明:这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。domainmaster说明:这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并把整个域的浏览列表递交给各本地主浏览器。默认值是no。如果网络上已经有一台NTPDC,就不要把这个参数设为yes,争不过NTPDC的。另外,如果你对计算机浏览服务不是很清楚的话,可以参考NT网络管理资料。2.6共享资源设置参数comment说明:就是对共享的描述,可以是任意的字符串。例如:comment=ShareStuff。path说明:path是提供共享服务的路径,可以用%u%m这样的宏来代替路径里的unix用户和客户机的Netbios名。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path=/home/share/%u;。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,可以这样写path:path=/home/share/%m。writeable说明:指定共享路径是否可以写,值是yes或no。browseable说明:指定共享是否可以浏览,默认是yes。available说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。exec和postexec,rootpreexec和rootpostexec说明:指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是rootpreexec和rootpreexec是以root的权限运行。比如在服务器把cdrom作为共享,但cdrom是不能一直处于装配状态的。我们可以这样设置[cdrom]

comment=ServerCdrom

path=/mnt/cdrom

public=yes

browseable=yes

rootpreexec=/bin/mount-tiso9660/dev/cd0/mnt/cdrom

rootpostexec=/bin/umount/mnt/cdrompublic说明:这个参数指明是否允许guest帐户访问,值为yes或no,另一个和public相同意义的参数是guestok。打印共享还有些专用的打印参数,阐述如下:loadprinters指定在samba启动时是否自动把printcap文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是yes。printable指定用户能不能打印,默认是no,要让一个打印共享可以让用户使用,必须设为yes。printname打印机名。printerdriver打印机的驱动类型,这个参数可以让WINDOWS知道远程打印机上的类型,具体的值可以参考在WINDOWS里安装打印机出现选择打印机类型时的打印机类型。比如EsponLQ1600K打印机:printerdriver=EsponLQ-1600K以上就是samba的一些常用的配置,通过这些配置参数,我们已经可以建立起一个一般应用的文件服务器。虽然还有很多参数没有提到,但samba本身可以用缺省值。启动samba,可以用/usr/sbin/sambastart来启动samba,也可以用ntsysv来启动。三、samba进阶下列所介绍的是一些高级参数的配置,这些参数如果应用得当,可以更加灵活地在网络上应用samba1.宏在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有:%S=当前服务名;%P=当前服务的根路径;%u=当前服务的用户名;%g=给定%u的所在的主工作组名;%H=给定的%u的宿主目录;%v=Samba版本号;%h=运行Samba的机器的主机名;%m=客户机的NETBIOS名;%L=服务器的NetBIOS名;%T=当前的日期和时间;灵活地应用宏可以很方便地管理比较复杂的网络。2.一些常用高级配置参数2.1全局参数configfile说明:这个参数是全局参数,可以让你用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这个参数非常有用,也使得samba的配置更灵活,让一台Linux服务器模拟多台不同配置的NT服务器,满足不同的需求。比如,您想让网络上的某台名字是host1的机器用它自己的配置文件,先在/etc/下为host1配置一个名为smb.conf.host1的文件,在缺省的smb.conf里加这行:configfile=/etc/smb.conf.%m这样,当host1请求连接的时候,smb.conf.%m被替换成smb.conf.host1,对host1来说,它所看到的samba就是由smb.conf.host1定义的。而其它机器还是用smb.conf。deadtime说明:这个参数值是个整数,单位是分钟,用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过datetime指定的的时间后,samba就自动切断这个连接。这个参数可以节省服务器的资源消耗,尤其是在有大量连接的情况下。默认的值是零,零代表samba不自动切断任何连接。timeserver说明:这个参数让nmbd成为WINDOS客户的时间服务器。默认是no。2.2共享资源参数dminusers这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是adminusers=no。例如:adminusers=Su_27那么Su_27这个用户就是这个共享资源的管理员。validusers说明:指定共享资源的有效用户,即允许访问该资源的用户。例如:validusers=user1,user2那么user1和user2是有效用户。invalidusers说明:和validusers相反,指定那些用户不可访问这共享资源。maxconnections(S)说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求把被拒绝。例如:maxconnections=100最大连接数为100以上是一些samba的高级配置参数,但samba的参数还有很多,本章不能一一详述,如文件创建权限设定,代码页,文件名大小写是否敏感等,可以参考samba的文档。四、什么是NFSNFS是网络文件系统(NetworkFileSystem)的简称,是分布式计算系统的一个组成部分,实现在异种网络上共享和装配远程文件系统,从用户角度看来,在这些远程的文件系统操作和本地的文件系统上操作并没有什么不同。NFS由Sun微系统公司(SunMicrosystem,Inc)开发,制订了NFS标准,并被IETF接受,纳入RFC,作为文件服务的一种标准(RFC1904,RFC1813)。NFS基于客户/服务器结构,通过RPC(远过程调用)实现,所有的NFS操作都由RPC过程来进行。NFS服务器导出本地的目录给远程的NFS客户,NFS客户把对文件操作系统调用重定向到远程的系统。在Linux里,通常用knfsd来实现NFS服务,这是个运行在核心空间的后台守护程序,相对与用户空间的NFS程序,有较高的响应性能。五、配置NFS1.创建或修改/etc/exportsexports的每一行由导出路径,客户名列表以及每个客户名后尾随的访问选项构成,访问选项是可选的。direc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论