前言:
为了实现windows 和 Linux以及其它操作系统之间的资源共享,软件商推出nfs 和samba两种解决方案。因为市场上缺乏象pc-nfs那样的client工具,使得Linux和windows的资源共享变得复杂。Samba的出现攻克了 这一问题,它以其简洁、有用、灵活配置的特点受到越来越多人们的广泛关注。
Windows利用SMB协议来实现操作系统间文件和打印机共享,而Samba本身具备SMB协议,它实现局域网内和Windows系列计算机的资源共享。
本文就Samba在Linux系统下的配置为重点,讨论局域网内windows 与 Linux 的资源共享。
一、Samba 介绍
1、SMB协议
SMB (Server Message Block,服务信息块) 协议,是局域网上的共享文件/打印机的一种协议,它能够为网络内部的其它windows和linux 机器提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB执行在TCP/IP之上,且使用NetBIOS的nameserver让 linux机器能够在windows 网络邻居里被浏览。
2、Samba
Samba是用来实现SMB的一种软件,由澳大利亚的Andew Tridgell开发,是一种在Linux 环境里执行的自由软件。它能够完毕例如以下功能:
文件服务和打印服务,实现Windows和Linux的资源共享。
登录server,能够作为局域网的server。
作为主域控制器。
WINSserver。
支持SSL。
支持SWAT。
二、 Samba服务
1、 核心进程
Samba 有两个守护进程:smbd 和nmbd,它们是Samba的核心进程。nmbd进程使其它计算机浏览Linuxserver,Smbd进程在SMB服务请求到达时对它们进行处理,而且为使用或共享的资源进行协调。
2、 启动服务
Samba 有两种启动方式:Daemon形式和Inetd形式。
(1)Daemon形式 建立启动脚本:rc.samba
smbd -D -d1
nmbd -D -d1
-D 表示以Daemon形式运行;-d1 表示除错记录级别
运行脚本文件rc.samba
(2)Inetd形式
设置文件:/etc/services
netbios -ssn 139/ tcp
netbios -ns 137/ udp
设置文件:/etc/inetd.conf
netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd
重新启动动Inetd daemon
# kill -HUP 1
3、 客户工具 smbclient
Smbclient命令用来存取远程Sambaserver上的资源。其命令形式与ftp类似。
命令语法是:#smbclient [password] [option]
(1) 解释:servicename是要连接的资源名称,资源名称的形式例如以下:
//server/service server 是远程服务器的NetBIOS名字,对于windows服务器而言,就是出如今网上邻居中的名字。
Service是各server所提供的资源的名字。
pssword 是存取该资源所需的口令
option 各种命令选项,当中 -L 用于列出远程server提供的全部资源
-I 指定远程server的IP地址。此时,servicesname 中的NetBIOS名部分将被忽略。
(2)多种smbclient命令:
运行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/>
这里有很多命令和ftp命令类似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们能够訪问远程主机的共享资源。