Samba剖析与定制技巧

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: 小  |  中  |  大  |  超大  

摘

要

本文较为详细地对Linux的Samba服务进行了剖析,内容涉及Samba的核心、语法、组成,以及

Samba的启动与停止。同时给出了定制Samba的几个技巧。

关键词

Samba,剖析,定制

1

引

言

Linux是一个优秀的网络操作系统,它可与多种网络集成。Linux系统的稳定性、可靠性受到了广大用户

的欢迎,在小型网或者在公司、部门、单位等内部网(Intranet)上,常将Linux充当有效而强劲的文件

和打印服务器,让windows客户机共享Linux系统中的文件。这种Linux与

windows网络集成是通过samba

来实现。Samba是一组软件包,使Linux支持SMB协议,该协议由TCP/IP实现,它是windows网络文件和打

印共享基础,负责处理和使用远程文件和资源。在缺省情况下,windows工作站上的Microsoft

client使

用服务消息块(SMB)协议。正是由于samba的存在,使得windows和Linux可以集成并互相通讯。

2

Samba核心

samba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行。Smbd和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提供的多种服务。Smb.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

(公众共享)

通信地址:湖北孝感学院计算机科学系(432100)

李革新

联系电话:0712-2841540

E-mail:

lgx2000@yeah.net

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航