April 29
借助网络和Samba实现资源共享
一、Samba的基础知识
1.什么是Samba?
Samba是一组软件包,运行于Linux系统中,用来实现与Windows系统之间的通信。它允许Linux系统出现在Windows的网络邻居中,使Windows用户享受由Linux主机提供的文件与打印服务。
2.Samba能做什么?
Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。
二、Samba的设置
用户可以使用“manswat”命令来设置Samba,由于swat的不足之处在于不能得到相关的解释,所以对初学者来说最好使用“vi/etc/smb.conf”来配置Samba,用户可从中得到相关解释,此处将对Samba中常用的配置作重点介绍。
用户使用vi编辑器对smb.conf文件进行编辑,可以添加、删除及修改smba提供的多种服务。Smb.conf一般位于/etc目录下,在定制符合实际需求的smb.conf时,最好使用#cp/etc/smb.conf/etc/smb.conf.old进行备份。
在缺省情况下,RedHatLinux的samba在启动时就已投入运行。当我们修改了smb.conf后,必须重新启动samba服务,才能使修改有效。为此,可利用系统脚本来手工启动和停止samba。具体方法如下:
#/etc/rc.d/init.d/smbstart(启动samba)
#/etc/rc.d/init.d/smbstop(停止samba)
1.全局参数的设置
该部分由[global]段完成Global的设置,该部分提供了全局参数,对samba的功能具有很大的影响,主要用来设置整个系统规则。[global]段主要内容有(注:在下面所有段的设置中,括号中的内容为注释部分):
[global]
workgroup=mygroup(提供NT域名或工作组名,mygroup是系统提供的缺省名字,用户可根据实际情况,给出与windows的域名或工作组名相同的名字,以指出samba将在该域或工作组范围中起作用。)
serverstring=sambaserver(指定服务信息通常为samba服务。)
hostsallow=163.1.1.5,163.1.1.8(允许登录的Linux-samba的主机名单,用IP地址给出,多个IP地址用空格分开,不在名单中的主机将不能得到samba提供的服务。)
printcapname=/etc/printcap(指定printcap文件地址,通常为/etc/printcap,包含了Linux打印机的配置信息,在ReaHatlinux中,lpd守护进程读取printcap文件的配置信息,然后监测系统的打印请求并管理打印进程。)
loadprinters=yes(允许使用共享打印机时,默认值为yes。)
security=user(指定安全模式。大多数用户使用user级的安全模式,samba用本地Unix口令文件验证。如果设置为server时,samba将用passwordserver设定windowsNT域服务器验证方式,格式为passwordserver=NT域名。)
domainlogons=yes(为从win95工作站登录samba提供域名登录服务,应使该项置为yes。)
2.共享用户主目录
在[homes]部分指定windows共享的主目录,如果在windows工作站登录的名字与Linux用户名相同,提供的口令也一致,那么打开网络邻居,双击共享目录图标,就可获得访问该目录的权力。从Windows访问Linux主目录时,用户名作为主目录共享名。[homes]段的主要内容有:
[homes]
comment=/home/root说明提供的服务为用户主目录服务,不影响操作。
browseable=no(指定其它用户能否浏览该用户主目录。一般置为no,禁止其它用户访问,确保数据安全。)
writable=yes(使用户访问该目录时具有读取和写入主目录中的文件时,取值为yes,只有读取权限时应置为no。)
3.使用共享打印机
[printers]部分用于指定如何共享Linux网络打印机,从windwos系统访问Linux网络打印机时,共享应是printcap中指定的Linux打印机名。
[printers]
browseable=yes(若取值为yes,则允许其它用户访问打印机。否则,限制其它用户的访问权。)
printable=yes(置为yes,才能实现打印。)
public=no(置为no,客户帐号不打印出来;置为yes,则打印出客户帐号。)
writable=no(打印机是输出设备,不可写入,应置为no。)
4.设置临时共享目录
该部分是为所有用户提供临时共享指定目录的方法:
[tempdir]
path=/lgx2000(指定临时共享路径,如c:\lgx2000。)
readonly=no(置为no时,用户对/tmp有可读、可写和执行的权限。)
public=yes(一般置为yes,以便让所有用户共享使用/lgx2000目录。)
5.设置公共访问目录
[public]段提供了所有用户都可以共同访问的目录。除了那些属于维护人员具有读、写、执行权外,用户只具有读取的访问权限。
[public]
path=/home/samba(指定公众共享目录路径)
public=yes(取值为yes,允许公众共享。否则,禁止公众共享该目录)
writable=yes(取值为yes时,公众对/home/samba有可写权力。)
printable=yes(取值为yes时,公众对/home/samba有打印权力)
writelist=lgx2000lgx2001(指定具有可写权力的用户名单)
6.设置私用目录
[fredsdir]段用于指定私用目录,以供指定的用户使用,该用户对该目录具有写权限。
[fredsdir]
path=c:/lgx(指定私用目录路径,以便指定用户可读写)。
validusers=lgx2001(指定使用该私用目录的合法用户)
public=no(当取值为no时,该私用目录不供公众用户所共享)
writable=yes(指定的用户对该私用目录具有写权限)
printable=yes(取值为yes时,可打印)。
7.共享光驱设备
修改smb.conf之前,先安装光驱,可执行下列命令:
#mount-tiso9660/dev/cdrom/mnt/cdrom
然后定制samba,内容如下:
[cdrom]
path=/mnt/cdrom(指定设备加载点)
readyonly=yes(该设备用于只读)
public=yes(该设备向公众开放)
通过对Samba介绍,读者可参照文中介绍的方法,根据用户的实际需求,量“身”定制Samba,如:如何实现软盘驱器、打印机等资源的共享,如何保证某一目录仅向指定的用户提供服务,如何让某一资源向所有网络用户开放等。这些问题将留给大家自己去完成,有什么问题请发E-mail至lgx2000@nbsp;yeah.net。