Samba旧资料

由 joo 在 08-11-2002 13:31 发表:

Samba旧资料

正文:

Samba服务器的使用

一、Samba基础

1、 简介

1).SMB协议

SMB(Server Message

Block,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。

SMB的工作原理是让NetBIOS(Win95网络邻居通信协议)与SMB这两种协议运行在TCP/IP的通信协议上,且使用NetBIOS

nameserver让用户的Linux机器可以在Windows的网络邻居里被看到,所以就可以和Win95/NT主机在网络上相互沟通,共享文件与服务了。

目前Microsoft正在开发一种新的文件和打印共享协议--CIFS(Common Internet Files

System,通用网络文件协议),该协议支持TCP/IP和DNS等协议,能在www上支持文件和打印共享。在CIFS下服务器实际上是DNS名,由主机名和域名组成。这种变化是从NetBIOS命令结构中分离出来的。目前CIFS还没有得到广泛的应用。现在在Linux和Win95/NT之间的文件共享注意还是SMB和NFS。

2).什么是Samba

Samba是用来实现SMB的一种软件,由澳大利亚的Andew Tridgell开发,是一种在Linux(Unix)环境下运行的免费软件。

通过使用Samba,Linux系统可以实现如下功能:

文件服务和打印服务(在Linux和Win95/NT之间系统之间提供打印机和磁盘的共享)

登陆服务器,使用Windows客户能注册到网络上

作为主要域控制器和域中成员的功能

WINS服务器以及浏览功能

支持SSL(Secure Socket Layer)

支持SWAT (Samba Web Administration Tool )

Samba除了支持Linux(Unix)和Win95/NT之外,还支持DOS、IBM OS/2、Macintosh 等操作系统。

在Samba的软件包中所包括的组件参看表1-1:

表1-1 Samba软件包的组成列表

2、Samba的记录文件

Samba为smbd、nmbd和访问Samba的客户提供了下列记录文件,分别记录有关smbd、nmbd运行信息和每个客户的访问信息:

记录smbd 信息

/var/log/samba/log.smb

记录nmbd信息

/var/log/samba/log.nmb

记录客户访问信息

/var/log/samba/log.%m

3、启用Samba服务器

Samba的运行包含两个后台守护进程:smbd和nmbd,它们是Samba的核心,在全部时间内运行。nmbd

程序使得通过企图计算机可以浏览Linux服务器。Smbd守护进程在SMB软件包到达网上时对它们进行处理,并且为使用或共享它的资源与Linux进行协调。如果指定的是一个文件,该资源就是一个文件;而一个打印机请求就要求访问一台打印机。实际上,在请求访问打印机时,Smbd把要打印的信息存储到打印机队列中;在请求访问一个文件时,Smbd把数据发到内核,最后将它存到磁盘上。

你可以从inetd选择启动它们,但这种方法会使Samba变慢。建议使用下面命令可以启动这两个进程:

/etc/rc.d/init.d/smb start

/usr/sbin/samba start

如果想要在系统启动时自动启动samba,可以使用/usr/sbin/turboservice命令,选中其中的"SMB (Windows)File

Services"。

二、Samba配置及使用

1、定制文件/etc/smb.conf

在安装完Samba后,还需要定制它的配置文件smb.conf,才能使Samba正常工作以符合要求。由于SMB是一个非常复杂的协议,所以配置Samba的工作也是比较繁琐的,大约有超过170条配置项出现在smb.conf文件中。

1).smb.conf的语法

smb.conf文件有一个清晰的语法结构,与Windows的*.ini文件十分类似。如下所示:

该文件被分成几部分,每一部分都包括几个参数,用来定义Samba输出的共享及其详细操作。

文件被分隔成若干节,每一节都由一个被方括号括起来的标识开始(例如,[global]、[home]、[printers]),每一个配置参数或是一个全局参数(影响或控制整个服务器),或是一个服务参数(影响或控制服务器提供的某项服务 )。

global部分定义的参数用来控制Samba的总特性。除global部分外,每一部分都定义了一个专门的服务。

你可以使用下面的语句来指定一个参数:

name=VALUE

name可以是一个单词或者用空格隔开的多个单词。VALUE可以是布尔值(ture或false;yes或no;1或0)、数字或字符串。

注释以分号开头,可以单独一行,也可以跟在一条语句之后。

通过在一行的最后一个字符后加反斜杠""可以将一行分成多行。

每一部分的名字和参数都不区分大小写,例如,参数browseable=yes与browseable=YES是完全等价的

2).smb.conf文件的功能

smbd和nmbd这两个守护进程启动时(通常为系统引导时)读配置文件smb.conf,这一配置文件向这两个守护进程说明输出

什么共享、共享输出给谁以及如何进行输出等等。

因为安全问题是最重要的,所以你必须指定哪些计算机可以访问这一共享,smb.conf文件可以很灵活的明确指定每一服务有哪些用户可以访问。随着Linux网络的增大,这一控制越来越重要。

3).smb.conf文件结构

smb.conf文件主要包括三部分:

global(全局)参数

directory shares (目录共享)部分--包括标准的[home]部分

printer shares(打印共享)部分

其中,global参数用来设置整个系统的规则;[home]部分和[printer]部分是服务的特定例程,services(服务)这一术语是网络客户机共享或输出的目录和打印机的Samba术语。这些服务定义了哪些用户可以访问这些目录和打印机以及如何访问这些目录和打印机。

清单1-1给出了smb.conf文件的一个简单的例子。

清单1-1 smb.conf文件的一个简单示例

[global]

netbios name = FRODO

workgroup = UAB-TUCC

server string = John Blair's Linux Box

security = user

printing = lprng

log file = /var/log/samba

lock directory = /var/lock/samba

[homes]

comment = Home Directory

browseable = no

read only = no

[printers]

browseable = no

guest ok = yes

printable = yes

在 [global] 段中设置了主机名称, 主机所在的工作组名称和浏览时可看到的对本机的描述。安全参数告诉 Samba

使用"用户级别"的安全保护方式。 SMB 有两种安全模式: 共享级别, 将资源加密码控制;用户级别, 可以使用某一用户的所有资源。

这里不能详细解释两种方式的微妙差别, 但大部分情况下, 你会想用用户级别安全控制。

[global] 段中还定义了日志文件目录和锁定文件的位置。日志文件在解决故障和完善系统时是很有用的,锁定文件可以阻止多个用户同时修改相同的文件。

[homes] 段中的设置控制了每一个用主目录的共享权限。comment 参数指定的字符串在你浏览本机资源时出现在指定资源的旁边。

browseable 参数控制一项服务是否能够出现在网络资源浏览表中。这里是一些非直觉的东西, browseable = no

意味着这个目录将在浏览时显示为要验证的用户名称。 举例来说, 指定 browseable = no, 当我浏览这个 Samba 服务器时,

我将看到一个名称为 cuckoo 的共享目录。当指定 browseable = yes 时, 我将看到一个名为 homes 和 cuckoo

的共享目录。设置 read only = no 将允许通过验证的用户对主目录有写入的权限。 但是, 如果他们的主目录的 UNIX 权限 不允许写入,

那么他们就没有写的权限。 无论 UNIX 的权限怎样, 设置 read only = yes 后, 他们的主目录是只读的。

printing 命令描述了本地打印系统类型, 这可以让 Samba 知道怎样提交打印任务, 显示打印队列, 删除打印任务和其它操作。

如果打印系统是 Samba 所不知道的, 你必须在每次执行打印操作时指明命令。

清单中[printing]一段配置允许任何能够登录到 Samba 服务器的用户使用 printcap 中出现的 每一台打印机。 正常情况下,

如果使用用户级别安全控制, guest ok = yes 并不能授权每一个用户(使用系统)。 每一个打印服务必须定义为 printable =

yes。

下面的一段配置片断增加了一个命名为 public 的共享目录, 直接对匿名FTP目录有只读的 权限。 你必须在客户机上建立打印机驱动程序。 对于

Windows 95 和 Windows NT 客户机, 你可以使用printer name 和 printer driver命令自动建立打印驱动。

[public]

comment = Public FTP Directory

path = /home/ftp/pub

browseable = yes

read only = yes

这段描述并不是解释一些微妙的主题,

例如用户级和共享级安全性的区别或者其它的授权认证主题。它仅仅让我们看到了Samba这座冰山的一角。另一方面,这是一个良好的例子,从中我们可以了解产生一个简单但可工作的smb.conf文件是多么容易。

下面,我们举另一个例子说明如何通过Samba把Linux的打印机共享给Windows机器。

为了共享Linux的打印机给Windows机器,必须确定Linux机器上的打印机已经设置好。如果能从Linux上打印,那么设定Samba的打印机共享是很简便的。只要根据自己的情况,对smb.conf文件有关打印的部分进行修改就可以了。在修改中唯一需要注意的是确保打印机的路径要与/etc/printcap中的spool目录相符合,然后就可以在Win95/NT上配置网络打印机了(关于如何在Win95/NT上配置网络打印机,本文不做介绍)。

4).标准smb.conf文件清单

在Samba的软件包里的example目录中有一个缺省的配置文件smb.conf.defaults。我们可以对它做适当修改后拷贝到你的安装目录下的lib目录里,并改名为smb.conf。清单1-2是Samba系统提供的标准的配置文件。为方便读者阅读,本文翻译了文件中的注释并适当的添加了解释。

清单1-2 标准smb.conf 文件

这是服务器的主要配置文件。您应该阅读smb.conf(5)的用户手册以了解下面

列出的每一个选项。Samba有很多的选项,它们之中的大多数并没有出现在这

个例子中。

以分号";"或井号"#"开始的每一行都是注释,在执行时被忽略。在本例中

我们使用"#"作为注释而使用";"作为可选配置的注释。

注意:无论何时修改了这个配置文件,您都要运行"testparm"命令来检查您所

做的修改有没有基本的语法错误。

#=================== 全局变量设置Global Settings ====================

[global]

workgroup用来指定您的机器在网络上所属的NT域名或组名。格式是

workgroup = NT-Domain-Name or Workgroup-Name。缺省的组名是 MYGROUP。

workgroup = MYGROUP

server string 用来设置NT描述域。缺省值是Samba Server 。

server string = Samba Server

下面的选项对于安全很重要。它允许您设置哪些领域的机器可以访问您的Samba

服务器。下面的这个例子允许两个C类子网和"lookup"的连接请求而禁止来

自其他网段机器的连接请求。有关的例子请参看smb.conf的用户手册。

; hosts allow = 192.168.1. 192.168.2. 127.

允许自动加载打印机列表,而不需要您单独设置每一台打印机。

load printers = yes

您也许希望覆盖原有的printcap 文件。

; printcap name = /etc/printcap

对于SystemV系统,如果将printcap名设置为lpstat 将允许您从SystemV 的

spool中自动获得打印列表。

; printcap name = lpstat

除非您的打印机不是标准型号,否则您没有必要在下面指定打印机系统的类型。

目前支持的打印机系统包括:bsd, sysv, plp, lprng, aix, hpux, qnx

; printing = bsd

如果希望建立一个客户帐号,去掉下面语句前面的分号";"。同时,您必须在

/etc/passwd中加入这个帐号的定义,否则将使用用户"nobody"作为客户帐户。

; guest account = pcguest

此选项将为每一个与服务器连接的机器定义一个单独的日志文件。

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

此选项设置最大的日志文件的大小(以KB为单位)

max log size = 50

定义安全模式。大多数人都喜欢用户级安全模式,详细内容参看security_level.txt

security = user

只有当安全模式设置为服务器级(security = server)时,才定义下面选项。

; password server =

  1<nt-server-name>   
  2  
  3# 如果用户想使用加密口令的话,请参阅ENCRYPTION.txt、Win95.txt和 WinNT.txt   
  4  
  5# 文件,请在阅读以上文件后使用下面选项。   
  6  
  7; encrypt passwords = yes   
  8  
  9# 使用此选项允许您对每一个机器使用不同的配置。%m将被替换成与服务器   
 10  
 11# 请求连接机器的NetBIOS名。   
 12  
 13; include = /usr/local/samba/lib/smb.conf.%m   
 14  
 15# 大多数人会发现此选项将显著提高服务器的执行效率,请参读speed.txt和用户   
 16  
 17# 手册以了解更多细节。   
 18  
 19socket options = TCP_NODELAY   
 20  
 21# 配置Samba来使用多个网络界面,如果您有多个网络界面,那么必须按照下面   
 22  
 23# 格式在这里列出。请参阅用户手册以获得更多的细节。   
 24  
 25; interfaces = 192.168.12.2/24 192.168.13.2/24   
 26  
 27# 浏览控制选项   
 28  
 29#如果不想使您的Samba服务器成为局域网内部的主浏览服务器,将此选项设为no   
 30  
 31; local master = no   
 32  
 33# OS Level决定了该服务器在局域网内的访问优先权。   
 34  
 35; os level = 33   
 36  
 37# Domain Master将Samba服务器定义为主域浏览器。此选项将允许Samba在子   
 38  
 39#网列表中比较浏览。如您已经有一台Windows NT域控制器,不要使用此选项   
 40  
 41; domain master = yes   
 42  
 43# Preferred Master使Samba在启动时选择一个本地浏览器并给它获得选择的较高   
 44  
 45# 的机会   
 46  
 47; preferred master = yes   
 48  
 49#仅当您的网络中有一台在安装时设置为主域控制器的NT服务器时使用此选项。   
 50  
 51; domain controller = <nt-domain-controller-smbname>   
 52  
 53# 如果想使Samba成为Windows95工作站的登录服务器,则使用此选项。   
 54  
 55; domain logons = yes   
 56  
 57# 如果允许域登录服务,那么您也许希望每台机器或每个用户的登录脚本运行一   
 58  
 59# 个特定的每工作站的登录批处理文件。,   
 60  
 61; logon script = %m.bat   
 62  
 63# 运行一个特定的每用户名登录批处理文件。   
 64  
 65; logon script = %U.bat   
 66  
 67# 放置roving profiles 文件的位置(仅用于 Win95 和WinNT) ,%L代表该服务器   
 68  
 69# NetBIOS名,%U是用户名,您必须取消后面定义的[Profiles]前面的注释号。   
 70  
 71; logon path = \\\%L\Profiles\%U   
 72  
 73# Windows的Internet名服务支持记录部分   
 74  
 75# WINS Support告诉NMBD守护进程支持WINS服务器。   
 76  
 77; wins support = yes   
 78  
 79# WINS Serve选项告诉NMBD守护进程作为WINS的客户机。   
 80  
 81# 注意:Samba既可以作为WINS服务器也可以作为 WINS客户机,但不能兼   
 82  
 83# 而有之。   
 84  
 85; wins server = w.x.y.z   
 86  
 87# WINS Prox代表一个非WINS客户通知Samba响应名字解析请求。要使此选项   
 88  
 89# 正常工作必须保证网络中至少有一台WINS服务器。缺省值是NO。   
 90  
 91; wins proxy = yes   
 92  
 93# DNS Proxy选项决定Samba是否通过DNS 的nslookups 去解析主机的NetBIOS   
 94  
 95# 名。对于1.9.17 以前的版本内置值是yes ,对于1.9.18之后的版本内置值是no 。   
 96  
 97dns proxy = no   
 98  
 99#================== 定义共享服务Share Definitions ===================   
100  
101# 所有使用者的home目录   
102  
103[homes]   
104  
105comment = Home Directories   
106  
107# 当一个客户程序以客人用户类出本服务器的共享服务时,不列出homes服务。   
108  
109# 但是本机用户创建的主目录服务仍使用[global]节设定的browseable。   
110  
111browseable = no   
112  
113writable = yes   
114  
115# 如果要创建一个netlogon目录则取消下面的注释。   
116  
117; [netlogon]   
118  
119; comment = Network Logon Service   
120  
121; path = /usr/local/samba/lib/netlogon   
122  
123; guest ok = yes   
124  
125; writable = no   
126  
127; share modes = no   
128  
129# 如果要提供一个特定的共享roving profile则取消下面的注释。   
130  
131# 缺省值是使用用户的home目录。   
132  
133;[Profiles]   
134  
135; path = /usr/local/samba/profiles   
136  
137; browseable = no   
138  
139; guest ok = yes   
140  
141# 注意:如果您有一个BSD 风格的打印系统,您不需要单独定义每台打印机。   
142  
143[printers]   
144  
145comment = All Printers   
146  
147path = /usr/spool/samba   
148  
149browseable = no   
150  
151# 设置public = yes 将允许以guest 帐号登录的用户使用打印机。   
152  
153guest ok = no   
154  
155writable = no   
156  
157printable = yes   
158  
159# 此选项定义网络用户共享文件的临时目录。   
160  
161;[tmp]   
162  
163; comment = Temporary file space   
164  
165; path = /tmp   
166  
167; read only = no   
168  
169; public = yes   
170  
171# 一个用户共享目录,除了在"staff "组里的用户有些写的权限之外之外,对   
172  
173# 其它用户是只读的。   
174  
175;[public]   
176  
177; comment = Public Stuff   
178  
179; path = /home/samba   
180  
181; public = yes   
182  
183; writable = yes   
184  
185; printable = no   
186  
187; write list = @staff   
188  
189# 其他例子:   
190  
191#   
192  
193# 下面定义了一台只有fred可以使用的私人打印机。Spool数据放在fred的home   
194  
195# 目录里。注意:fred必须对Spool目录有写的权限,不管这个目录在什么位置。   
196  
197;[fredsprn]   
198  
199; comment = Fred's Printer   
200  
201; valid users = fred   
202  
203; path = /homes/fred   
204  
205; printer = freds_printer   
206  
207; public = no   
208  
209; writable = no   
210  
211; printable = yes   
212  
213# 下面定义一个只有用户fred才能使用的私人目录。fred 必须对这个目录拥有   
214  
215# 写的权限。   
216  
217;[fredsdir]   
218  
219; comment = Fred's Service   
220  
221; path = /usr/somewhere/private   
222  
223; valid users = fred   
224  
225; public = no   
226  
227; writable = yes   
228  
229; printable = no   
230  
231# 下面定义的是对每个域服务器连接的机器有不同的目录的服务。这将允许您   
232  
233# 对于不同的机器使用不同的配置,同样也可以使用%U选项为每个用户使用不   
234  
235# 同的配置。%m在连接时将被替换为客户机的主机名。   
236  
237;[pchome]   
238  
239; comment = PC Directories   
240  
241; path = /usr/pc/%m   
242  
243; public = no   
244  
245; writable = yes   
246  
247# 下面定义一个所有用户都可以读写的共享目录。注意用户在这个目录中创建的   
248  
249# 文件都将归默认用户所有。所以任何可以访问这个目录的用户都可以删除别的   
250  
251# 用户在这个目录里放置的文件。显然,这个目录对于默认用户必须是可写的。   
252  
253# 当然,也可以指定某个用户,这时,该目录的所有文件将为此用户所有。   
254  
255;[public]   
256  
257; path = /usr/somewhere/else/public   
258  
259; public = yes   
260  
261; only guest = yes   
262  
263; writable = yes   
264  
265; printable = no   
266  
267# 下例说明了如何定义让两个用户共享一个目录,他们在这个目录里放置的文件   
268  
269# 归他们各自所有。在此例中,这两个用户对该目录都有写的权限。当然文件的   
270  
271# 保护应该设置恰当。很显然,这个例子可以扩展到适合于多个用户的情况。   
272  
273;[myshare]   
274  
275; comment = Mary's and Fred's stuff   
276  
277; path = /usr/somewhere/shared   
278  
279; valid users = mary fred   
280  
281; public = no   
282  
283; writable = yes   
284  
285; printable = no   
286  
287; create mask = 0765   
288  
289  
290  
2912 共享访问限制   
292  
2931).通过主机地址   
294  
295使用以下参数来限制通过主机地址访问:   
296  
297allow hosts   
298  
299hosts allow   
300  
301deny hosts   
302  
303hosts deny   
304  
305"allow hosts"、" hosts   
306  
307allow"这两个功能相同的参数指定允许访问一个服务的主机列表,主机列表用","号、空格或制表符隔开。如用于[global]段,则应用于所有服务,而忽略在每个服务中的各自的设置。   
308  
309主机列表的组成可以是主机名、IP地址、子网地址或网络号码/掩码。也可以使?quot;EXCEPT"关键字来限制子网中的个别主机的访问。例如:   
310  
311hosts allow = 202.204. 3 EXCEPT 202.204.3.30   
312  
313允许在202.204.3子网上的主机访问,但禁止其中的202.204.3.30访问。   
314  
315"deny hosts"、" hosts deny"这两个功能相同的参数指定禁止访问某个服务的主机列表,与"allow   
316  
317hosts"相反。当与"allow hosts"列表冲突时,"allow hosts"列表优先。 
318
319__________________   
320  
321时间=金钱=家庭=个人 
322
323  
324
325
326* * *
327
328  
329_由 joo 在 08-11-2002 13:32 发表:_   
330  
331
332
333**Samba旧资料**
334
335  
336  
337
338
3392).通过用户口令   
340  
341使用以下参数来限制通过用户口令访问:   
342  
343security   
344  
345参数security可以确定对客户用户名/口令的验证方式。缺省为"user",即对Samba服务器的任何访问都要通过用户名/口令的验证。如果客户登录客户机,如Windows   
346  
347所用的用户名与Samba服务器上的UNIX用户名一致,则通过口令验证后就可以访问;如Windows   
348  
349所用的口令也与UNIX一样,那么不经任何提示就可以访问。   
350  
351但如果客户机上登录的用户名与Samba服务器上的UNIX用户名不一致,则需要在一个映射文件中(如/etc/smbusers)写入客户机用户名到UNIX用户名的映射,同时使用"username   
352  
353map"参数指定映射文件,例如:   
354  
355username map = /ect/smbusers   
356  
357在/etc/smbusers文件中的内容如下:   
358  
359cuckoo = "cuckoo doo"   
360  
361这样,在客户机上以"cuckoo   
362  
363doo"注册后,再与Samba服务器连接时,输入UNIX客户cuckoo的口令就可以进入,因为Samba已经把"cuckoo   
364  
365doo"映射为cuckoo。   
366  
367security参数的另一个值是"share",表示Samba服务器不需要客户机使用用户名/口令来登录,而是根据每个共享的设置来决定是否需要用户名/口令验证。设置security为share一般用于客户机上大多数用户名与Samba服务器上UNIX用户名不相同的情况,以及Samba服务器主要提供guest访问。   
368  
369在smb.conf文件中,如果没有设置"encrypt   
370  
371passwords",Samba将使用UNIX的password数据库来验证用户口令。这需要客户机将口令以"普通文件"的方式传递过来。如果设置了"encrypt   
372  
373passwords",Samba则使用另一个加密口令文件,通过"smb passwd file"来设置,例如:   
374  
375encrypt passwords = yes   
376  
377smb passwd file = /etc/smbpasswd   
378  
379  
380  
3813).通过用户名   
382  
383public   
384  
385guest ok   
386  
387上面的两个参数的功能相同,都可以使用相应的服务允许guest用户,即不需要用户名/口令验证。如果还指定了"guest   
388  
389only",那么相应的服务器只允许由guest用户来访问。   
390  
391invalid users   
392  
393valid users   
394  
395这两个参数分别设置不允许注册某个服务和允许注册某个服务的用户列表。一个用户同时出现在两个列表中的时候,不允许注册优先。列表中的用户名可以用空格隔开,以"@"开头的名字被认为是NIS   
396  
397组名或UNIX组名;以"+"开头的名字被认为是UNIX组名;以"&amp;"开头的名字只被认为是NIS组名。   
398  
399only user   
400  
401此参数控制是否只允许在"user ="列表中指定的用户访问某个服务。如果设置为true,则只有在"user ="列表中的用户才能访问。   
402  
403  
404  
4054).通过是否可以读写来控制   
406  
407read only   
408  
409此参数设置为"yes",则使用服务的用户不能在该服务的目录中创建或修改文件。   
410  
411writable   
412  
413writeable   
414  
415write ok   
416  
417这三个参数功能相同。如果它们被设置为"no",则使用服务的用户不能在该服务的目录中创建或修改文件。   
418  
419read list   
420  
421write list   
422  
423这两个参数分别指定只允许对一个服务进行只读访问或同时有"写"权限的主机列表,这里,如果一个主机同时在两个列表里,则"写"优先。   
424  
425  
426  
4275).通过是否在浏览器列表中显示来控制   
428  
429browsable   
430  
431browseable   
432  
433这两个功能相同的参数控制该段是否在浏览列表中列出。浏览列表列出的是可获得的共享列表。一般[home]段禁止浏览,以提高安全性。   
434  
435  
436  
4373、Windows 9x做为SMB客户的设置   
438  
4391).配置microsoft网络客户   
440  
441在客户机(WIN9X)上,在控制面板里添加microsoft网络客户。选中microsoft网络客户--标识--计算机名--my_computer_name--my_group,其中,my_computer_name将作为表示客户机的NetBIOS名,   
442  
443my_group为组名   
444  
445  
446  
4472).编辑注册表记录   
448  
449如果在SMB服务器上的smb.conf 文件中没有用到"encrypt   
450  
451passwords",即使用"普通文本"格式的口令,则必须要编辑注册表,来允许使用"普通文本"格式的口令。   
452  
453在Windows的注册表的以下条目中:   
454  
455/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP   
456  
457新建DWORD值,将新建的值命名为EnablePlainTextPassword;双击EnablePlainTextPassword,将键值设为1。   
458  
459  
460  
4613).重新启动   
462  
463重新启动计算机,以用户名/口令登陆。该用户名/口令将用于与SMB服务器连接时进行用户身份认证,所以如果要访问SMB服务器上用户自己的home目录,建议使用与SMB服务器上相同的用户名/口令。   
464  
465  
466  
4674).访问Samba服务器   
468  
469通过网络邻居浏览访问Samba服务器,可以在列表里选择,也可以在命令窗口里使用命令:   
470  
471\\\sambaserver   
472  
473  
474  
4754 、Samba服务器提供的其他命令   
476  
477smbstatus   
478  
479smbstatus指令用于显示当前的SMB服务器的连接状态。例如,在IP地址为202.204.3.16的"cuckoo"客户机上,用户john访问SMB服务器的"public"服务时,命令输出如下:   
480  
481/usr/bin/smbstatus   
482  
483Samba version 2.0.3   
484  
485Service uid gid pid machine   
486  
487\----------------------------------------------   
488  
489public john john 10009 cuckoo (202.204.3.16) Fri Jul 21 20:3   
490  
491No locked files   
492  
493Share mode memory usage (bytes):   
494  
4951048464(99%) free + 56(0%) used + 56(0%) overhead = 1048576(100%) total   
496  
497此命令可以附加一些开关来显示不同的内容,下表列出了主要的开关及其含义:   
498  
499表1-2 smbstatus命令主要选项表   
500  
501  
502  
503nmblookup   
504  
505nmblookup命令用于把一个NetBIOS名字映射到IP地址。对于上面的例子,可以使用下面的命令查找主机cuckoo:   
506  
507/usr/bin/nmblookup sale   
508  
509可以使用合适的选项来允许nmblookup查询一个IP广播域或是一个单独的机器,该命令常用的选项参看表1-3。   
510  
511表1-3 nmblookup 命令主要选项列表   
512  
513  
514  
515smbclient   
516  
517smbclient是访问SMB服务器资源的客户程序。该程序提供的接口与ftp程序类似,访问操作包括从SMB服务器下载文件到本地,或从本地上载文件到SMB服务器,还可以在SMB服务器上检索目录信息等。   
518  
519命令语法如下:   
520  
521/usr/bin/smbclient //smbserver/service [passwd][-U username]   
522  
523其中,smbserver是SMB服务器的NetBIOS名,一般与服务器的主机名一样,但不是必须的。"service"为服务器提供的服务,如文件服务public或打印服务printer。   
524  
525passwd是访问某些服务时需要的口令。如果在命令行输入,后面则不会再提示输入口令。否则,将在后面提示输入口令。虽然有些要访问的服务器不需要口令,但仍然会有输入口令的提示。如果不希望有口令提示,则可以在命令行使用"-N"选项。   
526  
527如果要使用其他的端口与SMB服务器进行TCP连接,可以使用"-p"选项来指定,缺省值为139。   
528  
529"-U"可以指定与SMB服务器连接时使用的用户名。如果没有指定,smbclient使用环境变量USER指定的值作用户名。如果没有USER环境变量,则用"guest"。   
530  
531在环境变量USER中,可以设置"USER=username%password",这样就不用在命令行上输入口令。同时,使用ps命令看不到命令行参数,具有一定的安全性。同样,也可以使用"-U   
532  
533username%password"的形式指定用户名和口令。?quot;-U"指定的口令"%password"要优先于在命令行[password]中指定的口令。   
534  
535  
536  
537"-L"选项可以列出在一个服务器上提供的服务,例如:   
538  
539/usr/bin/smbclient -L smbserver   
540  
541使用下面的命令可以进入与ftp类似的提示状态:   
542  
543/usr/bin/smbclient //smbserver/service   
544  
545执行结果:   
546  
547smb:\&gt;   
548  
549其中"\"表示服务器当前的工作目录。在该提示符下可以使用的命令可以通过"?"、"help"命令列出。命令不分大小写。   
550  
551在该提示符下除了可以使用很多与ftp类似的命令外,还有命令recurse,它可以被设置为on,以便在使用mget或mput命令时能够get或put匹配的子目录。recurse缺省为off,即只get或put当前目录中的文件。   
552  
553  
554  
555在该提示符下还可以使用下面的命令:   
556  
557smb:\&gt;tar c localfile filename   
558  
559将服务器上文件名为"filename"的文件和目录(可以使用通配符)经过tar 拷贝到本地的"localfile "文件中。或者:   
560  
561smb:\&gt;tar x localfile filename   
562  
563可以把本地tar 文件localfile 中的文件filename拷贝到服务器上;如果filename省略,则拷贝所有的文件。   
564  
565上面的命令也可以在smbclient命令行上来执行,如:   
566  
567/usr/bin/smbclient //smbserver/service [passwd] -T c local file filename   
568  
569/usr/bin/smbclient //smbserver/service [passwd] -T x local file filename   
570  
571smbprint   
572  
573smbprint是在Linux系统下将打印文件提交给远地SMB服务器打印的脚本程序。程序中调用的命令就是smbclient。下面举例说明此命令的使用方法。   
574  
575例如,远端SMB服务器NetBios名为prtserver(Windows   
576  
5779X),提供打印服务。服务名为netpcl(NEC激光打印机),不需要口令。   
578  
579在Linux系统中配置如下:   
580  
5811. 编辑/etc/printcap文件,加入下面一行   
582  
583smb:lo=/dev/null:sd=/usr/spool/smb:sh:if=/usr/bin/smbprint:af=/var/spool/lpd/smb/acct   
584  
5852.建立目录/usr/spool/smb、/var/spool/lpd/smb   
586  
5873.用下面命令建立记帐文件   
588  
589touch /var/spool/lpd/smb/acct   
590  
5914.建立/var/spool/lpd/smb/.config文件,包含下面内容:   
592  
593server = prtserver   
594  
595service = necpcl   
596  
597password = ""   
598  
5995.编辑/usr/bin/smbprint文件,在smbclient命令参数中使"echo   
600  
601translate"有效,这样可以使UNIX文件到Windows 9x系统打印时,进行<lf>与<cr lf="">的转换。   
602  
6036.启动lpd:   
604  
605/etc/rc.d/init.d/lpd start   
606  
6077.使用lpr命令打印/etc/hosts文件   
608  
609/lpr -P smb/etc/hosts   
610  
611lpr缺省使用的打印机名为lp,这里使用的是smb。   
612  
613  
614  
6155、使用Samba加密口令   
616  
617客户机访问Samba服务器时进行的用户身份认证包括使用"普通文本"格式的口令,通过网络传送给SMB服务器,与UNIX的帐户数据库(如/etc/passwd)进行核查;或者使用加密口令,通过"SMB   
618  
619challenge/response"验证进行核查。本文着重介绍加密口令的用法。   
620  
621在Samba服务器中使用了与Windows NT兼容的口令加密算法,因此可以像Windows NT一样对Samba的客户进行用户口令核实。   
622  
623Windows   
624  
625NT使用一个包含用户口令hashed值的文件,是通过对用户的"普通文本"的口令经过加密算法得到的,称为"hashed口令"。不能从该hashed值返回得到原始的"普通文本"的口令。在Samba服务器上可以形成同样的hashed口令,保存在smbpasswd文件中。   
626  
627当一个Samba客户(如Windows 9x   
628  
629或NT)使用Samba资源时,它先请求一个连接,并商讨连接使用的协议。Samba回答客户请求时产生一个随机值,发送给客户,并且还储存在Samba服务器上,称为"challenge"。"challenge"对于每一个客户连接是不一样的。   
630  
631客户然后使用hashed口令与"challenge"进行加密运算,产生24个字节的"response",发送给Samba服务器。   
632  
633Samba服务器使用自己保存的hashed值的用户口令(保存在smbpasswd文件中)与先前产生的"challenge"进行同样的加密运算,将产生的结果与客户发送过来的结果进行比较,如果结果相同,则客户被允许访问;否则,禁止用户访问。   
634  
635  
636  
637对于Samba服务器来说,它不存储"普通文本"格式的口令,储存的是从"普通文本"口令转换的hashed口令。并且在网络连接时,"普通文本"和"hashed口令"都不被传送</cr></lf></nt-domain-controller-smbname></nt-server-name>
Published At
Categories with 服务器类
Tagged with
comments powered by Disqus