Linux成为“文件服务器”
|
源代码网推荐一、Samba简介 源代码网推荐给Windows客户提供文件服务是通过samba实现的,凡架设过MSWindows网络的人都知道MSWindows网络的核心是SMB/CIFS,而samba也是一套基于UNIX类系统、实现SMB/CIFS协议的软件,作为UNIX的克隆,Linux也可以运行这套软件。和NT相比较,samba的文件服务功能一点也不亚于NT,效率很高,借助Linux本身,可以实现用户磁盘空间限制功能,NT到4.0版本还是无法实现这点,samba由samba小组(http;//samba.org)开发,更新速度很快,目前最高的版本是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;//samba.org/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管理工具; 源代码网整理以下 源代码网整理以下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=192.168.1.192.168.2.127. 源代码网整理以下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 源代码网整理以下writable=no 源代码网整理以下printable=yes 源代码网整理以下printerdriver=EpsonLQ-1600K 源代码网整理以下[tmp] 源代码网整理以下comment=Temporaryfile 源代码网整理以下path=/tmp 源代码网整理以下readonly=no 源代码网整理以下public=yes 源代码网整理以下[public] 源代码网整理以下comment=PublicZone 源代码网整理以下path=/home/samba 源代码网整理以下public=yes 源代码网整理以下writable=yes 源代码网整理以下1.段 源代码网整理以下从上面的例子可以看出,smb.conf的格式和Windows里的INI文件很像,含有多个段,每个段由段名开始,一直到下个段名,每个段名放在方括号中间。段里的参数的格式是:名称=值。 源代码网整理以下文件里的每个段名、参数以及注释都只能占一行,换句话说就是一行里只能写一个段名或参数或注释,如果一行写不下或不想把一行写的过长,可以在行尾用""来表示续行。段名和参数名不分大小写。可以有注释,注释以;或#开始到该行结束。 源代码网整理以下除了[global]段外,所有的段都可以看作是一个共享资源,段名是该共享资源的名字,而段里的参数就是共享资源的属性。[global],[homes]和[printers]这三个段是比较特殊的,将在后面说明。而下面的注意事项则是针对普通的段。 源代码网整理以下一个共享资源段由要提供访问的路径和附加的访问权限组成,可以是文件资源或打印资源。共享资源段可以给guest级的用户服务,一般来说guest用户是不需要密码的,如果给guest提供服务,guest的权限是根据UNIX里的guest帐户来赋予。如果共享资源段不是给guest提供服务的,则访问这样的段需要客户的密码。由于赋予用户对共享资源段的访问权限是基于该用户在UNIX系统的对该资源的访问权限,所以服务器是不能赋予超过UNIX系统赋予该用户的权限的。 源代码网整理以下例如: 源代码网整理以下下面的共享资源段的例子定义了一个文件共享,用户对路径/home/abc有写入的权限,共享资源段名是abc,也就是共享名。 源代码网整理以下[abc] 源代码网整理以下path=/home/abc 源代码网整理以下writeable=true 源代码网整理以下而这下面的段定义了一个打印共享,共享是只读的,但可打印,就是说唯一允许的写访问就是打开、写入和关闭脱机文件。 源代码网整理以下[myprinter] 源代码网整理以下path=/usr/spool/public 源代码网整理以下readonly=true 源代码网整理以下printable=true 源代码网整理以下guestok=true 源代码网整理以下特殊段: 源代码网整理以下[global]段 源代码网整理以下在这个段的参数是全局有效的。 源代码网整理以下[homes]段 源代码网整理以下当用户请求一个共享时,服务器将在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。如果找不到,就将请求的共享名看成是用户的用户名,并在本地的password文件里找这个用户,如果用户名存在且用户提供的密码是正确的,则以这个home段克隆出一个共享提供给用户。这个新的共享的名称是用户的用户名,而不是home,如果home段里没有指定共享路径,就把该用户的宿主目录(homedirectory)作为共享路径。 源代码网整理以下通常的共享资源段能指定的参数基本上都可以指定给[home]段。但一般情况下[home]段有如下配置就可以满足普通的应用。 源代码网整理以下[homes] 源代码网整理以下writeable=yes 源代码网整理以下注意,如果在[home]段里加了guessaccess=ok,所有的用户都可以不要密码就能访问所有的宿主目录! 源代码网整理以下[printers]段 源代码网整理以下该段用于提供打印服务。 源代码网整理以下如果定义了[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 源代码网整理以下说明:这源代码网供稿. |
