6、Linux和Windows文件互访

Samba共享可以由SMB客户在Windows或Linux平台访问。Windows访问Linux系统共享文件一般通过网络邻居或Windows的IE浏览器;Linux访问Windows系统下共享文件一般通过smbclient和smbmount命令实现。

1) Windows客户使用Linux系统共享文件

一个正确配置的Samba共享可以通过Windows网络邻居或Windows的IE浏览器访问。其访问路径一般具有如下格式:

网上邻居\整个网络\工作组名\Linux机器名\Linux系统下目录

如果有问题,最值得怀疑的是Windows还不知道Samba服务器、用户和口令大小写的问题以及明文和加密口令问题。如果是Windows还不知道Samba服务器,则在找到该计算机的Windows窗口刷新屏幕,等待几分钟或者重新引导Windows客户。如果是用户和口令大小写的问题,则在[global]段中临时将用户名级和口令级设置足够大,如100。如果是明文和加密口令问题则在[global]段中设置encrypt passwords=yes和smb passwdfile=/etc/smbpasswd。

2)用smbclient工具访问局域网上的Windows系统

在Linux系统下访问局域网上其他系统包括Windows系统和Linux系统)的共享文件,有很多种不同的方式。下面我们先介绍smbclient工具。

用smbclient工具可以访问局域网上的Windows系统的SMB共享。smbclient提供一个类似FTP的界面,允许与另一个运行SMB服务器的网络共享的计算机进行文件传输。mbclient将另一个共享作为本地目录加载。smbclient提供命令行选项查询服务器可用的共享目录或者交换文件。关于所有命令行选项的详细信息,参考smbclient手册页。表1列出了smbclient工具最常用的一些命令及其功能。例如可使用如下命令列出计算机15.26.40.9上所有共享文件:

#smbclient –L 15.26.40.9

其中,- L参数要求列表输出,15.26.40.9是欲访问机器的IP地址,也可以使用任何可以解析为该IP地址的机器名。若要传输一个文件,必须首先使用以下命令连接到Samba服务器:

#smbclient //15.26.40.9/homes -U gong

其中,参数//15.26.40.9/homes指定另一台计算机上的远程服务。通常是一个文件系统目录或者打印机。任何解析为该IP地址的名字都可以替换该IP地址。-U选项允许指定希望用于连接的用户名。还有许多其他的smbclient命令配置,详细的信息请参阅smbclient手册页。如果该用户需要口令,则smbclient工具提示输入口令,然后出现如下提示:

smb: \

\表示当前工作目录。下面列出smbclient的所有命令参数如表1所示:

表1 smbclient的参数及其含义

参 数

含 义

?或help [命令]

提供命令的帮助消息,当不指定命令时提供一般的帮助

![shell命令]

执行指定的shell命令或者为用户提供shell提示符

cd [目录]

更改服务器上的指定目录不是本地计算机)。如果不指定目录,则smbclient报告当前的工作目录

lcd[目录]

在本地计算机上更改到指定的目录。如果不指定目录,则smb-client报告本地计算机上当前的工作目录

el[文件]

如果用户拥有权限,则删除服务器上的指定文件。文件可以包含通配符

dir或ls[文件]

列表显示指定的文件

exit或quit

退出smbclient程序

get

获得指定的远程文件并在本地服务器上保存该文件。如果指定了本地名称,则复制的文件以该文件名而不是远程服务器上的名称保存

mget[文件

复制所有指定的文件,包括所有匹配通配符的文件到本地计算机

md或mkdir[目录]

在远程计算机上创建指定的目录

rd或rmdir[目录]

在远程计算机上删除指定的目录

put

从本地计算机上复制指定的文件到服务器

mput[文件]

从本地计算机上复制所有指定的文件到服务器

print[文件]

在远程计算机上打印指定的文件

queue

显示在远程服务器上排队的所有打印作业

3)用smbclient工具访问局域网上的其他系统

为了访问方便,可以使用smbmount命令允许将一个Samba共享加载为本地目录。要实现该功能,在本地工作站创建一个/mnt/test目录。使用root用户运行以下命令:

#/usr/sbin/smbmount ‘//15.26.40.10/homes’ ‘/mnt/test’ –U gong

该命令应在本地机器上运行,而且该机器应已经包含/mnt/test目录。Samba服务器在IP地址为15.26.40.9的机器上,本地机器可以通过网络可以访问此服务器。注意任何解析为该IP地址的名字都可以替换该IP地址。在本地计算机上运行上述命令,以用户gong登录,将[homes]段中定义的共享加载到本地/mnt/test目录。

要卸载该目录,可作为root用户运行下面的命令:

#smbumount /mnt/test

4)用LinNeighborhood访问局域网上其他系统的共享文件

LinNeighborhood基于GUI界面,可用于在Linux系统下浏览局域网上运行Windows操作系统的“网络邻居”或其他运行Samba的Linux系统共享文件。下面介绍LinNeighborhood的用法。

1)下载LinNeighborhood软件包:首先到网上下载LinNeighborhood软件包。一般情况下LinNeighborhood软件包的提供形式是.tar.gz文件,现在的最新版本是0.6.5版,其文件名为LinNeighborhood-0.6.5.glibc-i386.tar.gz。下载后保存到某个目录。这里假设用户保存到/temp目录。

2)解压缩并解包文件:执行下述命令可以完成文件的解压缩和解包。

#cd /temp //切换目录
#tar xvfz LinNeighborhood-0.6.5.glibc-i386.tar.gz //解压缩

3)执行程序:软件不用任何设置,就可以直接执行。若欲执行LinNeighborhood,直接找到可执行文件输入LinNeighborhood命令即可。例如步骤2)解压缩解包后,可以输入以下命令执行程序:

//找到LinNeighborhood可执行文件所在目录,输入可执行文件名打开LinNeighborhood

#cd /temp/LinNeighborhood-0.6.5.glibc-i386
#./LinNeighborhood

打开程序出现如图3所示界面。

LinNeighborhood窗口 
图3 LinNeighborhood窗口

以上就是Samba服务器的简易使用说明。在Linux下实现资源共享还有其他几种方法,我们将在接下来几天为您一一分解。

作者介绍:李洋,信息安全专家,博士毕业于中科院计算所,ACM/IEEE会员。自2001年以来一直从事计算机网络信息安全领域的研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有丰富的系统应用、管理、安全及内核的研发经验。他的博客:http://patterson.blog.51cto.com/


相关内容