Samba使用大全!

由 coldcoffee 在 07-02-2002 22:56 发表:

Samba使用大全

Samba使用大全(一)-samba服务器

Samba协议基础

在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。

随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Inter net上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。

因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了。Samba是用来实现SMB的一种软件,它的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMB(Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows计算机看到。它的功能有:

1.共享Linux磁盘给Win95/NT

2.共享Win95/NT磁盘给Linux机器

3.共享Linux打印机给win95/NT

4.共享win95/NT打印机给Linux机器。

同时它的文件服务功能比NT系统还高,而且在Windows2000之前就提供了用户磁盘空间限制的功能。

Samba的配置

在我写这篇文章的时候,Samba的版本已经到了2.2.2了,需要的可以通过 ftp://samba.org/pub/samba/Binary_Pa...011013.i386.rpm 得到最新的rpm安装包。然后执行rpm -Uvh samba-2.2.2-20011013.i386.rpm来安装或者升级它。安装完后,可以看见/etc/samba这么一个目录,里面存放和Samba相关的一些文件,最主要的是smb.conf,现在根据配置文件讲讲它的配置选项:

全局设置:

workgroup = MYGROUP

定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)。

server string = MY Samba Server

设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。这里说一下samba定义的变量:

%S = 当前服务名(如果有的话)

%P = 当前服务的根目录(如果有的话)

%u = 当前服务的用户名(如果有的话)

%g = 当前用户说在的主工作组

%U = 当前对话的用户名

%G = 当前对话的用户的主工作组

%H = 当前服务的用户的Home目录

%v = Samba服务的版本号。

%h = 运行Samba服务机器的主机名

%m = 客户机的NETBIOS名称

%L = 服务器的NETBIOS名称

%M = 客户机的主机名

%N = NIS服务器名

%p = NIS服务的Home目录

%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)

%d = 当前服务进程的ID

%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)

%I = 客户机的IP

%T = 当前日期和时间

hosts allow = 网络或者主机

这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和192.168.2.1/32访问,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(网络注意后面加”.”号,各个项目间用空格隔开,记得把本机也加进去)

printcap name = printcapFile

到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息

load printers = yes|no

设定是否自动共享打印机而不用设置下面的[printer]一节的相关东西

printing = PrintSystemType

定义打印系统的类型,缺省是lprng,可选项有:bsd, sysv, plp, lprng, aix, hpux, qnx。

guest account = pcguest

定义游客帐号,而且需要把这个帐号加入/etc/passwd,不然它就用缺省的nobody

log file = LogFileName

定义记录文件的位置LogFileName(一般是用/var/log/samba/%m.log)

max log size = size

定义记录文件的大小size(单位是KB,如果是0的话就不限大小)

security = security_level

定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:

share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。

user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。

domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。

后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

password server =

  1<nt-server-name>   
  2  
  3当前面的security设定为server或者domain的时候才有必要设定它。   
  4  
  5password level = n   
  6  
  7这是设定针对一些SMB客户像OS/2之类而设的,这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。n越大,组合的次数就越多,验证时间就越长,安全性也会因此变得越低。例如n=2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合后的结果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。   
  8  
  9所以如果没有必要,就把n定为是零。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。   
 10  
 11username level = n   
 12  
 13这个是对于用户名的情况,说明和上面一项类似。   
 14  
 15encrypt passwords = yes|no   
 16  
 17设置是否对密码进行加密,samba本身有一个密码文件/etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/samba/smbpasswd密码文件进行验证。但是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改,比较麻烦,好的方法就是把这里的这个开关设置为yes。   
 18  
 19smb passwd file = smbPasswordFile   
 20  
 21设置存放samba用户密码的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。   
 22  
 23ssl CA certFile = sslFile   
 24  
 25当samba编译的时候支持SSL的时候,需要指定SSL的证书的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。   
 26  
 27unix password sync = yes|no   
 28  
 29passwd program = /usr/bin/passwd %u   
 30  
 31passwd chat = *New*UNIX*password* %n   
 32  
 33*ReType*new*UNIX*password* %n   
 34  
 35*passwd:*all*authentication*tokens*updated*successfully*   
 36  
 37这三项设置能否从windows的应用程序修改unix系统的用户密码   
 38  
 39username map = UsermapFile   
 40  
 41指定用户映射文件(一般是/etc/samba/smbusers),当我们在这个文件里面指定一行root = administrator admin的时候,客户机的用户是admin或者administrator连接时会被当作用户root看待。   
 42  
 43include = MachineConfFile   
 44  
 45指定对不同机器的连接采用不同的配置文件MachineConfFile(一般为了灵活管理使用/etc/samba/smb.conf.%m,由于采用了samba的变量,把配置文件和客户机的NETBIOS名称关联起来,能很容易地控制这些客户机的权限和设置)。   
 46  
 47socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192   
 48  
 49这个是网络socket方面的一些参数,能实现最好的文件传输性能。相关的选项还有SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),带*号的要指定数值。一般如果在本地网络,就只用IPTOS_LOWDELAY,如果是有一个本地网络的,就用IPTOS_LOWDELAY TCP_NODELAY,如果是广域网络,就试试IPTOS_THROUGHPUT。   
 50  
 51interfaces = interface1 interface2   
 52  
 53如果有多个网络接口,就必须在这里指定。如interface = 192.168.12.2/24 192.168.13.2/24   
 54  
 55remote browse sync = host(subnet)   
 56  
 57这里指定浏览列表同步信息从哪里取得, 如果用host(比如192.168.3.25)或者整个子网(192.168.5.255)。   
 58  
 59★这里说明一下什么是浏览(Browse):   
 60  
 61在SMB协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在Windows下使用网络邻居查看可以访问的计算机),这个机制就被称为浏览(Browse)。虽然SMB协议中经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。只有必要的时候,才重新查找资源,例如使用Windows下的查找计算机功能。   
 62  
 63但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为Browser,这些Browser通过记录广播数据或查询名字服务器来记录网络上的各种资源。   
 64  
 65Browser并不是事先指定的计算机,而是在普通计算机之间通过自动进行的推举产生的。不同的计算机可以按照其提供服务的能力,设置在推举时具备的不同权重。为了保证一个Browser停机时网络浏览仍然正常,网络中常常存在多个Browser,一个为主Browser(Master Browser),其他的为备份Browser。★   
 66  
 67remote announce = host(subnet)   
 68  
 69指定这些机器向网络宣告自己,而不是有Browser得到。   
 70  
 71local master = yes|no   
 72  
 73这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。   
 74  
 75os level = n   
 76  
 77n的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。   
 78  
 79domain master = yes|no   
 80  
 81这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并将整个域的浏览列表递交给各本地主浏览器。   
 82  
 83preferred master = yes|no   
 84  
 85这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。   
 86  
 87★Domain master和local master   
 88  
 89工作组和域这两个概念在进行浏览时具备同样的用处,都是用于区分并维护同一组浏览数据的多个计算机。事实上他们的不同在于认证方式上,工作组中每台计算机都基本上是独立的,独立对客户访问进行认证,而域中将存在一个(或几个)域控制器,保存对整个域中都有效的认证信息,包括用户的认证信息以及域内成员计算机的认证信息。浏览数据的时候,并不需要认证信息,Microsoft将工作组扩展为域,只是为了形成一种分级的目录结构,将原有的浏览和目录服务相结合,以扩大Mircrosoft网络服务范围的一种策略。   
 90  
 91工作组和域都可以跨越多个子网,因此网络中就存在两种Browser,一种为Domain Master Browser ,用于维护整个工作组或域内的浏览数据,另一种为Local Master Browser,用于维护本子网内的浏览数据,它和Domain Master Browser通信以获得所有的可浏览数据。划分这两种Browser 主要是由于浏览数据依赖于本地网广播来获得资源列表,不同子网之间只能通过浏览器之间的交流能力,才能互相交换资源列表。   
 92  
 93但是,为了浏览多个子网的资源,必须使用NBNS名字服务器的解析方式,没有NBNS的帮助,计算机将不能获得子网外计算机的NetBIOS名字。Local Master Browser也需要查询NetBIOS名字服务器以获得Domain Master Browser的名字,以相互交换网络资源信息。   
 94  
 95由于域控制器在域内的特殊性,因此域控制器倾向于被用做Browser,主域控制器应该被用作Domain Master Browser,他们在推举时设置的权重较大。★   
 96  
 97preserve case = yes|no   
 98  
 99short preserve case = yes|no   
100  
101指定拷贝DOS文件的时候保持大小写,缺省是no   
102  
103default case = lower|upper   
104  
105所有的DOS文件的缺省是大写还是小写   
106  
107case sensitive = yes|no   
108  
109大小写敏感,一般是no,不然会出现一些问题。   
110  
111共享设置:   
112  
113★共享资源:   
114  
115每个SMB服务器能对外提供文件或打印服务,每个共享资源需要被给予一个共享名,这个名字将显示在这个服务器的资源列表中。如果一个资源的名字的最后一个字母为$,则这个共享名就为隐藏共享,不能直接表现在浏览列表中,而只能通过直接访问这个名字来进行访问。在SMB协议中,为了获得服务器提供的资源列表,必须使用一个隐藏的资源名字IPC$来访问服务器,否则客户无法获得系统资源的列表。★   
116  
117共享设置中有个比较奇怪的段:   
118  
119[homes],在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。   
120  
121[homes]   
122  
123comment=Home Directory   
124  
125browseable=no   
126  
127writable=yes   
128  
129比较正常的共享的配置如下例:   
130  
131[MyShare]   
132  
133comment = grind’s file   
134  
135path = /home/grind   
136  
137allow hosts = host(subnet)   
138  
139deny hosts = host(subnet)   
140  
141writable = yes|no   
142  
143user = user(@group)   
144  
145valid users = user(@group)   
146  
147invalid users = user(@group)   
148  
149read list = user(@group)   
150  
151write list = user(@group)   
152  
153admin list = user(@group)   
154  
155public = yes|no   
156  
157hide dot files = yes|no   
158  
159create mode = 0755   
160  
161directory mode = 0755   
162  
163sync always = yes|no   
164  
165short preserve case = yes|no   
166  
167preserve case = yes|no   
168  
169case sensitive = yes|no   
170  
171mangle case = yes|no   
172  
173default case = upper|lower   
174  
175force user = grind   
176  
177wide links = yes|no   
178  
179max connections = 100   
180  
181delete readonly = yes|no   
182  
183其中[]里面的MyShare指定共享名,一般就是网络邻居里面可以看见的文件夹的名字。   
184  
185comment指的是对改共享的备注。   
186  
187path指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/glass目录。   
188  
189allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。   
190  
191writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。   
192  
193user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。   
194  
195valid users指定能够使用该共享资源的用户和组。   
196  
197invalid users指定不能够使用该共享资源的用户和组。   
198  
199read list 指定只能读取该共享资源的用户和组。   
200  
201write list指定能读取和写该共享资源的用户和组。   
202  
203admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。   
204  
205public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。   
206  
207hide dot files指明是不是像unix那样隐藏以“.”号开头的文件。   
208  
209create mode指明新建立的文件的属性,一般是0755。   
210  
211directory mode指明新建立的目录的属性,一般是0755。   
212  
213sync always指明对该共享资源进行写操作后是否进行同步操作。   
214  
215short preserve case指明不管文件名大小写。   
216  
217preserve case指明保持大小写。   
218  
219case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。   
220  
221mangle case指明混合大小写。   
222  
223default case指明缺省的文件名是全部大写还是小写。   
224  
225force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。   
226  
227wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。   
228  
229max connections = n设定同时连接数是n。   
230  
231delete readonly指明能否删除共享资源里面已经被定义为只读的文件。   
232  
233有两类特殊的共享,分别是光驱和打印机   
234  
235光驱的共享设置:   
236  
237[cdrom]   
238  
239comment = grind’s cdrom   
240  
241path = /mnt/cdrom   
242  
243public = yes   
244  
245browseable = yes   
246  
247root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom   
248  
249root postexec = /bin/umount /mnt/cdrom   
250  
251这里root preexec指明了连接时用root的身份运行mount命令,而root postexec则指明了断开时用root身份运行umount,有效实现了对光驱的共享。   
252  
253打印机共享的设置:   
254  
255[printers]   
256  
257path = /var/spool/samba   
258  
259writeable = no   
260  
261guest ok = yes   
262  
263printable = yes   
264  
265printer driver = HP LaserJet 5L   
266  
267这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。printer driver的作用是指明该打印机的类型,这样我们在安装网络打印机的时候可以直接自动安装驱动而不必选择。   
268  
269添加用户:   
270  
271samba添加用户比较方便,一般是用smbadduser,用法是smbadduser unixid:netid,举个例子:如果你的本机有个叫grind的用户,你用smbadduser grind:grind,这样从网上邻居访问的时候用户名就用grind,而如果你用了smbadduser grind:glass的话,网上邻居访问的时候提供的用户名就是glass而不是grind了。   
272  
273关于samba服务端的设置基本就是这些,我想一般应用中所要使用的上面几乎都覆盖到了,所以有些不重要的就省略了,如果要更加详细的信息可以用man smb.conf参考。&lt;   
274  
275Samba使用大全(二)-Samba客户端   
276  
277使用Samba网络打印:   
278  
279使用unix网络打印以前的文章比较少涉及,最近试验了一下,效果还是不错的,现在讲讲基本的实现方法:   
280  
281比如你要建立一台网络打印机grind,而打印机对应网络上面的//glass/HPLaserj,所有需要配置的文件有下面几个:   
282  
2831./etc/printcap,内容一般为:   
284  
285grind:   
286  
287:sh: #禁止提示的header   
288  
289:ml=0: #打印的文件的长度下限,   
290  
291:mx=0: #最大的打印文件大小,0为不限制   
292  
293:sd=/var/spool/lpd/grind: #打印机的spool目录   
294  
295:lp=|/usr/bin/smbprint: #打印输出需要的设备名或者管道名   
296  
297:lpd_bounce=true: #强制lpd守护进程过滤打印文件   
298  
299:if=/usr/share/printconf/mf_wrapper: #过滤命令文件   
300  
3012.smbprint这个一般在安装完smb相关的rpm包以后就有了,主要内容是:   
302  
303eval acct_file=$$#   
304  
305spool_dir=`dirname $acct_file`   
306  
307config_file=$spool_dir/.config   
308  
309eval `cat $config_file`   
310  
311share=`echo $share | sed "s/[]///g"`   
312  
313if [ "$user" != "" ]; then   
314  
315usercmd="-U"   
316  
317else   
318  
319usercmd=""   
320  
321fi   
322  
323if [ "$workgroup" != "" ]; then   
324  
325workgroupcmd="-W"   
326  
327else   
328  
329workgroupcmd=""   
330  
331fi   
332  
333if [ "$translate" = "yes" ]; then   
334  
335command="translate ; print -"   
336  
337else   
338  
339command="print -"   
340  
341fi   
342  
343cat | /usr/bin/smbclient "$share" "$password" -E ${hostip:+-I}   
344  
345$hostip -N -P $usercmd "$user" $workgroupcmd "$workgroup"   
346  
347-c "$command" 2&gt;/dev/null   
348  
3493.mf_wrapper是一个magic filter文件,是相关的一些过滤规则。内容是:   
350  
351MF_RULE_DIR='/usr/share/printconf/mf_rules'   
352  
353MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*   
354  
355TMP_FILE=`mktemp /tmp/printconf.XXXXXX`' 'exit 1   
356  
357cat ./mf.cfg $MF_RULES | m4 &gt; $TMP_FILE   
358  
359if [ -n "$DEBUG" ]; then   
360  
361case "$DEBUG" in   
362  
3632)   
364  
365DEBUGSTRING="--debug --debug"   
366  
367;;   
368  
3693)   
370  
371DEBUGSTRING="--debug --debug --debug"   
372  
373;; 4)   
374  
375DEBUGSTRING="--debug --debug --debug --debug"   
376  
377;;   
378  
3795)   
380  
381DEBUGSTRING="--debug --debug --debug --debug --debug"   
382  
383;;   
384  
385*)   
386  
387DEBUGSTRING="--debug"   
388  
389;;   
390  
391esac   
392  
393else   
394  
395DEBUGSTRING=""   
396  
397fi   
398  
399# Run magic filter   
400  
401/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* &lt; /dev/stdin   
402  
403RETVAL=$?   
404  
405if [ -f $TMP_FILE ]; then   
406  
407rm -f $TMP_FILE;   
408  
409fi   
410  
411;;   
412  
413esac   
414  
415else   
416  
417DEBUGSTRING=""   
418  
419fi   
420  
421# Run magic filter   
422  
423/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $* &lt; /dev/stdin   
424  
425RETVAL=$?   
426  
427if [ -f $TMP_FILE ]; then   
428  
429rm -f $TMP_FILE;   
430  
431fi   
432  
433if [[ $RETVAL -eq 0 ]]; then   
434  
435TERMINATION=`grep '^[[:space:]]*#[[:space:]]*TERMINATION=' ./mf.cfg | se   
436  
437d 's/^[[:space:]]*#[[:space:]]*TERMINATION=//;'`   
438  
439if [ -n $TERMINATION ]; then   
440  
441echo -n -e $TERMINATION;   
442  
443fi   
444  
445fi   
446  
447同时需要在/var/spool/lpd/grind下面有这么两个文件:mf.cfg和script.cfg。   
448  
449mf.cfg的内容是:   
450  
451define(TEXTfilter, text ""   
452  
45314 )dnl   
454  
455define(PSfilter, `filter /usr/share/printconf/util/mf_postscript_wrapper --mfomatic -d lj5gray-75168.foo')dnl   
456  
457script.cfg的内容是:   
458  
459share="//glass/HPLaserj" #glass机器上面共享的打印机   
460  
461hostip="192.168.1.123" #glass这台机器的IP   
462  
463user=""   
464  
465password=""   
466  
467workgroup=""   
468  
469translate="no"   
470  
471完成这个工作后,启动lpd进程,然后就能用lpr等命令使用网络打印机打印了。   
472  
473使用网络共享文件资源:   
474  
475列出网络资源:   
476  
477一般可以用smbclient来列出某台机器相关的资源,smbclient的用法参考 http://www.linuxaid.com.cn/training...owtod.jsp?i=241   
478  
479。这里讲比较有用的使用方法:   
480  
481smbclient -L IP或者NETBIOS名称,作用是显示某台提供samba服务的服务器上的共享资源。命令执行效果如下:   
482  
483smbclient -L glass   
484  
485Sharename Type Comment   
486  
487\--------- ---- -------   
488  
489IPC$ IPC 远程 IPC   
490  
491HPLaserJ Printer HP LaserJet 6P   
492  
493ADMIN$ Disk 远程管理   
494  
495littlep Disk   
496  
497C$ Disk 默认共享   
498  
499Server Comment   
500  
501\--------- -------   
502  
503GLASS   
504  
505GRIND   
506  
507Workgroup Master   
508  
509\--------- -------   
510  
511BLUESUN GLASS   
512  
513WORKGROUP HEIHEI   
514  
515第一段列举了该机器(glass)上面的共享资源,第二段列举了glass所在的工作组里面所有提供samba服务的机器,第三列举了其他工作组提供browse服务的Master机器(关于Master和Browse服务可以参考我的前面一篇samba使用大全-samba服务器)。   
516  
517使用网络资源:   
518  
519smbclient //IP或者NETBIOS名称/共享资源名 [-U 用户名]   
520  
521命令执行效果如下:   
522  
523smbclient //glass/littlep   
524  
525added interface ip=192.168.1.123 bcast=192.168.1.255 nmask=255.255.255.0   
526  
527Got a positive name query response from 192.168.1.123 (192.168.1.123)   
528  
529Password:   
530  
531Domain=[BLUESUN] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]   
532  
533smb: &gt;   
534  
535接下来的操作和ftp的时候命令一样,用get下载文件而用put上传文件,命令可以用help查看。   
536  
537还有一种方法是用文件系统的方式(这种方式要确定你的内核支持smbfs,如果没有支持的话,编译内核的时候必须选中File systems---&gt;Network File Systems---&gt; SMB file system support (to mount Windows shares etc.) ):   
538  
539smbmount //IP或者NETBIOS名称/共享资源名 /本地挂接点 [-o option]   
540  
541常用的的option有username=&lt;用户名&gt;,password=&lt;密码&gt;,guest(指定为用guest访问,不用提供密码,前面的即使用username=guest参数的话也会要求输入密码),ro(有时候为了系统安全要指定为只读模式),rw,同时多个option的话用逗号隔开。   
542  
543或者可以用mount -t smbfs [-o option] //IP或者NETBIOS名称/共享资源名 /本地挂接点来实现同样的功能。   
544  
545例子如下:   
546  
547smbmount //glass/littlep /test -o guest或者mount -t smbfs -o guest //glass/littlep /test,然后就能通过访问/test来使用网络上的资源了。   
548  
549如果不需要使用的时候,可以简单地使用smbumount /test或者umount /test来解除这个挂接。   
550  
551关于samba的功能(共享Linux磁盘给Win95/NT、共享Linux打印机给win95/NT、共享win95/NT打印机给Linux机器。、共享Win95/NT磁盘给Lin</nt-server-name>
Published At
Categories with 服务器类
Tagged with
comments powered by Disqus