Linux 版 (精华区)

发信人: don (别哭我最爱的人), 信区: Linux
标  题: Samba剖析与定制技巧 
发信站: 哈工大紫丁香 (2000年10月13日20:32:48 星期五), 站内信件

发信人: coolgod (我不知道), 信区: LINUX 
标  题: Samba剖析与定制技巧 
发信站: 武汉白云黄鹤站 (Thu Oct 12 10:40:29 2000), 站内信件 
  
摘 要 本文较为详细地对Linux的Samba服务进行了剖析,内容涉及Samba的核心、
语法 
、组成,以及 
 Samba的启动与停止。同时给出了定制Samba的几个技巧。 
 关键词 Samba,剖析,定制 
 1 引 言 
 Linux是一个优秀的网络操作系统,它可与多种网络集成。Linux系统的稳定性、
可靠性 
受到了广大用户 
 的欢迎,在小型网或者在公司、部门、单位等内部网(Intranet)上,常将
Linux充当 
有效而强劲的文件 
 和打印服务器,让windows客户机共享Linux系统中的文件。这种Linux与 
windows网络 
集成是通过samba 
 来实现。Samba是一组软件包,使Linux支持SMB协议,该协议由TCP/IP实现,它是
wind 
ows网络文件和打 
 印共享基础,负责处理和使用远程文件和资源。在缺省情况下,windows工作站上
的Mi 
crosoft client使 
 用服务消息块(SMB)协议。正是由于samba的存在,使得windows和Linux可以集
成并互 
相通讯。 
 2 Samba核心 
 samba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行
。Sm 
bd和nmbd使用的全 
 部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说
明输出 
什么以便共享, 
 共享输出给谁及如何进行输出。Smbd进程的作用是处理到来的SMB软件包,为使用
该软 
件包的资源与 
 Linux进行协商,nmbd进程使其它主机(或工作站)能浏览Linux服务器。 
 3 Samba语法 
 一个完整的 smb.conf一般由Global settings和share Definitions两部分组成。
每部 
分由消息头和参数 
 两部分构成。消息用“[ ]”标志,参数结构形式为: 
 parameter = value。 
 其中,parameter可以是一个或用空格分隔的多个单词,value 可以是布尔值、数
字或 
字符串。参数告诉 
 了smba提供何种服务。 
 在smb.conf文件中,注释行以“#”开头,同时每项中英文字母不区分大小写,在
一行 
最后字符尾加 
 “\”,可将一行分成多行。用“;”开头的行,是可改变的配置,将“;”去掉
时, 
该配置将取作用。 
 4 Samba组成 
 4.1 Global settings(全局参数的设置) 
 该部分由[global]段完成Global的设置,该部分提供了全局参数,对samba的功能
具有 
很大的影响,主要 
 用来设置整个系统规则。[global]段主要参数有: 
 workgroup=mygroup 提供NT域名 或工作组名 , mygroup是系统Red Hat6.0预置
的名 
字, 用户可根据 
 实际情况, 给出与windows的域名 或工作组名 相同 的名 字, 以指 出samba将
在该 
域或工作组范围中 
 起作用。 
 server string=samba server 指 定服 务信息通常为samba服 务。 
 hosts allow 允许登录的Linux-samba的主机名 单, 用IP地址给出, 多个IP地
址用空 
格分开, 不 在 
 名 单中的主机将不 能得到samba提供的服 务, 这也是网络安全的一个方面。 

 printcap name 指 定printcap文件地址, 通常为/etc/printcap, 包含了
Linux打印 
机的配置信息, 
 在ReaHat linux中, lpd守护进程读取printcap文件的配置信息, 然后监测系统
的打 
印请求并管理打印 
 进程。 
 load printers 允许使用共享打印机时, 默认值为yes。 
 printing 如果使用的打印机是非标 准的, 那么应该指 出打印机系统类型。在
Linux 
环境中, 通常指 
 定为bsd类型。 
 guest acount 来宾帐户, 表示用哪一个Linux用户作为所要的客户连接。由于该
帐户 
权限很小, root 
 用户通常将其置为nobody。 
 security 指 定安全模式。大多数用户使用user级的安全模式, samba用本地
Unix口令 
文件验证。如果 
 设置为server时, samba将用password server设定windows NT域服 务器验证方
式, 
格式为password 
 server=NT域名 。 
 domain logons 为从win95工作站登录samba提供域名 登录服 务, 应使该项置为
yes。 
  
 preserve case 与short preserve case 由于在Linux系统中英文大小写视为不 
同 的 
内容, 为在 
 windows中保持原有的大小写状态, 这两项全置yes。 
 4.2 Share Definitions(共享定义) 
 4.2.1 [homes]段 
 在[homes]部分指定windows共享的主目录,如果在windows工作站登录的名字与
Linux用 
户名相同,提供 
 的口令也一致,那么打开网络邻居,双击共享目录图标,就可获得访问该目录的
权力。 
从windows访问 
 Linux主目录时,用户名作为主目录共享名。[homes]段的主要参数有: 
 comment 说明提供的服 务为Home Directories服 务。不 影响操作。 
 browseable 指 定其它用户能否浏览该用户主目录。一般置为no, 禁止其它用户
访问 
, 确保数据安 
 全。 
 writable 使用户访问该目录时具有读取和写入主目录中的文件时, 取值为yes,
 只有 
读取权限时应置 
 为no。 
 4.2.2 [printers]段 
 [printers]部分用于指定如何共享 Linux网络打印机,从windwos系统访问
Linux 网络 
打印机时,共享应 
 是printcap中指定的Linux打印机名。该段中主要参数有: 
 browseable 若取值为yes, 则允许其它用户访问打印机。否则, 限制其它用户
的访问 
权。 
 printable 应置为yes, 才能实现打印。 
 public 置为no时, 客户帐号不 打印出来;置为yes, 则打印出客户帐号。 
 writable 打印机是输出设备 , 不 可写入, 应置为no。 
 4.2.3 [tmp]段 
 该部分是为所有用户提供临时共享方法。主要参数有: 
 path 指 定临时共享路径。通常为/tmp。 
 read only 置为no时, 用户对/tmp有可读、可写和执行的权限。 
 public 一般置为yes, 以便让所有用户共享使用/tmp目录。 
 4.2.4 [public]段 
 该部分提供了所有用户都可以共同访问的目录。除了那些属于维护人员具有读、
写、执 
行权外,用户只 
 具有读取的访问权限,主要参数有: 
 path 指 定公众共享目录路径, 通常为/home/samba。 
 public 取值为yes, 允许公众共享。否则, 禁止公众共享/home/samba目录。 

 writable 取值为yes时, 公众有可写权力。 
 printable 取值为no时, 无打印权力。 
 write list 指 定具有可写权力的用户名 单。 
 4.2.5 [fredsprn]段 
 该段用于指定专用打印机。 
 comment 指 出打印机名 字。 
 valid users 使用该打印机的有效用户。 
 path 专用打印机使用的缓冲池数据存放在用户主目录。 
 printer 指 出使用哪一个专用(私用)打印机。 
 public 该打印机不 共享, 仅作专用(私用)。 
 writable 缓冲池中的数据不 可写, 应置为 no。 
 printable 指 定打印能否启动, 一般值为yes。 
 4.2.6 [fredsdir]段 
 本段用于指定私用目录,以供指定的用户使用,该用户对该目录具有写权限。 
 comment 注明该目录为谁提供服 务。 
 path 指 定私用目录路径, 以便指 定用户可读写。 
 valid users 指 定使用该私用目录的合法用户。 
 public 当取值为no时, 该私用目录不 供公众用户所共享。 
 writable 指 定的用户对该私用目录具有写权限时, 取值应为yes。 
 printable 取值为no时, 不 可打印。 
 5 samba的启动与停止 
 在缺省情况下,Red Hat Linux的samba在启动时就已投入运行。也可利用系统脚
本来手 
工启动和停止 
 samba。具体方法如下: 
 # /etc/rc.d/init.d/smb start (启动samba) 
 # /etc/rc.d/init.d/smb stop (停止samba) 
 6 定制samba技巧 
 用户通过对smb.conf文件进行vi编辑,可以添加、删除及修改smba提供的多种服
务。S 
mb.conf一般位于 
 /etc 目录下,在定制符合实际需求的smb.conf时,最好使用 
 # cp /etc/smb.conf /etc/smb.conf.old 
 进行保存。要查看smb.conf的内容时,可执行: 
 # vi /etc/smb.conf 
 6.1 向公众开放 Linux文件资源,来访者只有读权限。 
 [public] 
 comment=public stuff 
 path = / 
 public = yes 
 writable = no 
 printale = no 
 write list = @staff 
 6.2 共享CD-ROM 
 修改smb.conf之前,先安装光驱,可执行下列命令: 

 # mount - t iso9660 /dev/cdrom /mnt/cdrom 
 然后定制samba,内容如下: 
 [cdrom] 
 path = /mnt/cdrom 
 ready only = yes 
 public= yes 
 6.3 为多个用户提供服务 
 comment = userl’sstuff,user2’sstuff,user3’sstuff 
 path = /home/user1 (用户userl的主目录) 
 valid users = user1 user2 user3 
 public = no (除了user1,user2,user3外不向公众用户开放) 
 writable = yes (三用户对/home/user1中的文件有写权限) 
 printable = yes (允许打印) 
 6.4 向公众用户开放/dev目录,浏览设备类型。 
 [dev] 
 comment = open and browse the /dev directory 
 path = /dev (路径为/dev) 
 ready only = yes (只读) 
 public = yes (公众共享) 
  
-- 

--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: PR-AI.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.591毫秒