在Linux下轻松玩转Samba服务器

Tonywei0 2011-05-20

一、samba概念和功能

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样以来,使得Samba具有了更强大的功能。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而Samba较多的用在了Linux与windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,因而,一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。

Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

二、 Samba的安装与配置

我们的系统环境是:

操作系统:Red Hat Enterprise Linux Server release 5.1

Samba服务器IP地址:192.168.60.231

Samba版本:samba-3.0.23c-2

1.安装samba

几乎所有的Linux发行版本中都默认自带了samba软件包,登陆系统,检查是否安装了Samba软件,执行如下操作:

[root@localhost ~]# rpm -q samba

samba-3.0.23c-2

如果有显示,表示系统已经安装了Samba,如果没有任何显示,请到系统光盘找到对应的Samba软件包,然后进行安装。

Samba的安装很简单,安装过程如下:

[root@webserver ~]# rpm -ivh samba-3.0.23c-2.i386.rpm

warning: samba-3.0.23c-2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

1:samba                  ########################################### [100%]

Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。

2.Samba服务的组成与使用

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,只有SMB服务启动,才能实现文件的共享,而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件。

例如,某台Samba服务器的IP地址为192.168.60.231,对应的工作组名称为ixdba,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。

\\192.168.60.231\共享目录名称

\\ixdba\共享目录名称

可以通过/etc/init.d/smb start/stop/restart来启动、关闭、重启Samba服务,启动SMB服务如下所示:

[root@localhost Linuxdata]# /etc/init.d/smb start

Starting SMB services:                            [  OK  ]

Starting NMB services:                            [  OK  ]

从启动的输出中,可以看出,SMB的启动包含了SMB和NMB两个服务。

那么在Linux作为客户端时,查看其它Linux Samba服务器共享的文件时,应该如何操作呢,这就要用到smbclient这个工具。系统默认自带了这个命令。Smbclient常见用法介绍如下。

(1)查看Samba服务器的共享资料

Smbclient  –L  //Samba服务器的ip地址  -U  Samba用户名

“-L”即为list的含义,“-U”是user的意思,如果Samba服务器是无密码访问的话,可以省略“-U  Samba用户名”。

例如:samba需要密码登陆时,查看共享方法如下:

[root@web ~]# smbclient  -L //192.168.60.231/Linuxdata –U admin

Password:  在这里输入admin的密码。

Samba无密码访问时,执行如下命令:

[root@web ~]# smbclient  -L //192.168.60.231/Linuxdata

Password: 直接回车即可。

(2)登陆Samba服务器

如果需要在Linux客户端登陆Samba服务器,用法如下:

Smbclient  //Samba服务器的ip地址  -U  Samba用户名

请看下面执行的操作:

[root@web samba]# smbclient  //192.168.60.231/Linuxdata

Password:

Domain=[IXDBA.NET] OS=[Unix] Server=[Samba 3.0.23c-2]

Server not using user level security and no password supplied.

smb: \> ls

.                                   D        0  Thu Feb 19 23:49:33 2009

..                                  D        0  Thu Feb 19 19:05:24 2009

install.log                              36563  Thu Feb 19 23:49:22 2009

install.log.syslog                        4295  Thu Feb 19 23:49:22 2009

58113 blocks of size 262144. 44294 blocks available

smb: \> ?      #在这里输入?即可查看在smb命令行可用的所有命令。

?              altname        archive        blocksize      cancel

case_sensitive cd             chmod          chown          close

del            dir            du             exit           get

getfacl        hardlink       help           history        lcd

link           lock           lowercase      ls             mask

md             mget           mkdir          more           mput

newer          open           posix          posix_open     posix_mkdir

posix_rmdir    posix_unlink   print          prompt         put

pwd            q              queue          quit           rd

recurse        reget          rename         reput          rm

rmdir          showacls       setmode        stat           symlink

tar            tarmode        translate      unlock         volume

vuid           wdel           logon          listconnect    showconnect

!

smb: \>

看到了吗,是不是与登陆FTP服务器很类似,登陆Samba服务器后,就可以进行文件的上传与下载,如果有足够的权限,还可以进行修改文件操作。

相关推荐