第 03 章 Samba 服务的配置与应用
description
Transcript of 第 03 章 Samba 服务的配置与应用
第 03 章 Samba 服务的配置与应用
本章导读 Samba 的概述 Samba 服务的配置文件 Samba 服务的文件共享 Samba 服务的打印共享 启动和停止 Samba 服务 Linux 客户端的访问 Windows 客户端的访问
SMB 协议
它是 Microsoft 和 Intel 在 1987年开发的,该协议可以用在TCP/IP 之上,也可以用在其他网络协议(如 IPX 和 NetBEUI )之上。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序还可以访问远程服务器端的文件和打印机等资源 。
Samba 服务 Linux 使用一个被称为
Samba 的程序集来实现SMB 协议。通过 Samba ,可以把 Linux 系统变成一台SMB 服务器,使 Windows 95 以上的 Windows 用户能够使用 Linux 的共享文件和打印机,同样的 Linux 用户也可以通过 SMB 客户端使用 Windows 上的共享文件和打印机资源 。
Samba 服务目前 Samba 的最新版本是 3.0.26 ,它的主要功能如下。( 1 )提供 Windows 风格的文件和打印机共享。 Windows 95 、 Wind
ows 98 、 Windows NT 、 Windows 2000 、 Windows XP 、 Windows 2003 等操作系统可以利用 Samba 共享 Linux 等其他操作系统上的资源,而从外表看起来和共享 Windows 的资源没有区别。( 2 )在 Windows 网络中解析 NetBIOS 的名字。为了能够利用局域网上的资源,同时使自己的资源也能被别人所利用,各个主机都定期地向局域网广播自己的身份信息。负责收集这些信息,提供检索的服务器也被称为浏览服务器,而 Samba 能够实现这项功能。同时在跨越网关的时候 Samba 还可以作为 WINS 服务器使用。( 3 )提供 SMB 客户功能。利用 Samba 程序集提供的 smbclient 程序可以在 Linux 中以类似于 FTP 的方式访问 Windows 共享资源。( 4 )提供一个命令行工具,利用该工具可以有限制地支持 Windows的某些管理功能。
Samba 服务工作原理Samba 服务的具体工作过程如图 3-4 所示。① 首先客户端发送一个 SMB negprot 请求数据报,并列出它所支持的所有 SMB 协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回 0XFFFFH ,结束通信。② 协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送 SesssetupX 请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个 S
esssetupX 应答数据报来允许或拒绝本次连接。③ 当客户端和服务器完成了磋商和认证之后,它会发送一个 Tcon 或 TconX SMB 数据报并列出它想访问网络资源的名称,之后服务器会发送一个 TconX 应答数据报以表示此次连接是否被接受或拒绝。④ 连接到相应资源后, SMB 客户端就能够通过 open SMB 打开一个文件,通过 read SMB 读取文件,通过 write SMB 写入文件,通过 close SMB 关闭文件。
3.2 Samba 服务的安装 默认情况下, Red Hat Enterprise Linux 5 安装程序没有安装 Samba 服务,可使用下面的命令检查系统是否已经安装了 Samba 或查看已经安装了何种版本。rpm -q samba 如果系统还没有安装 Samba 服务。如果现在要安装,可将 Red Hat Enterprise Linux 5 的第 2 张安装盘放入光驱,加载光驱后在光盘的 Server 目录下找到 Samba 服务程序的
RPM 安装包文件 samba-3.0.23c-2.i386.rpm ,然后使用下面的命令安装 Samba 。rpm -ivh /mnt/Server/samba-3.0.23c-2.i386.rpm
Samba 服务的主配置文件Samba 服务的主配置文件 /etc/samba/smb.conf由两部分构成。1.Global Settings
该设置都是与 Samba 服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的。2. Share Definitions
该设置针对的是共享目录个别的设置,只对当前的共享资源起作用。
Samba 服务的日志文件 Samba 服务的日志默认存放在 /var/log/samba目
录中, Samba 服务为所有连接到 Samba 服务器的计算机建立个别的日志文件,同时也将NMB 服务和 SMB 服务的运行日志分别写入nmbd.log 和 smbd.log日志文件中 。
全局参数1.设置 Samba 服务器所属的群组名称或 Windows 的域名 workgroup = MYGROUP
2.设置 Samba 服务器的简要说明 server string = Samba Server
3.设置可访问 Samba 服务器的主机、子网或域 hosts allow = 192.168.1. 192.168.2. 127.
4.设置 Samba 服务启动时,将自动加载的打印机配置文件 printcap name = /etc/printcap
全局参数5.设置是否允许打印配置文件中的所有打印机开机时自动加载 load printers = yes
6.设置 guest账号名guest account = pcguest
7.指定 Samba 服务器使用的安全等级security = user
全局参数Samba 服务器的安全等级共有以下 5 类。( 1 ) share 安全等级( 2 ) user 安全等级( 3 ) server 安全等级( 4 ) domain 安全等级( 5 ) ads 安全等级
全局参数8.有多个网卡的 Samba 服务器设置需要监听的网卡interfaces = 网卡 IP 地址或网络接口 9.设置 Samba 服务器同时充当 WINS 服务器wins support = yes
10.设置 WINS 服务器的 IP 地址wins server = w.x.y.z
用户映射 用户映射通常是在 Windows 和 Linux 主机之间进行。两个系统拥有不同的用户账号,用户映射的目的就是将不同的用户映射成为一个用户。做了映射后的 Windows账号,在使用
Samba 服务器上的共享资源时,可以直接使用 Windows账号进行访问。 要使用用户映射,只需将 smb.conf 配置文件中 username map = /etc/samba/smbusers 前的注释符号“;”去除 。然后编辑文件 /etc/samba/smbusers ,将需要映射的用户添加到文件中。参数格式为:单独的 Linux账号 = 要映射的 Windows账号列表
使用加密口令全局参数“ encrypt password”设置项可用来指定用户的密码是否以加密的方式发送到 Samba 服务器,默认值是使用此功能。参数格式如下:encrypt password = yes 或 no使用“ yes” 表示采用加密的方式发送密码,使用“ no” 则相反。 Windows 操作系统也是采用加密的方式发送密码。如果此参数设置为“ no” 的话,就必须修改Windows 系统的注册表。为了简化用户的操作, Samba 提供了多种 Windows 操作系统类型的注册表文件,这些文件存放在
/usr/share/doc/samba-3.0.23c/registry 目录中 。
共享目录2.设置一个共享目录【例】设置共享目录 share ,它的本机路径为“ /home/share” ,只有 s
hare组的用户可以读写该目录, tom 用户只能读取。具体的步骤如下。① 以 root 用户登录系统,使用命令 groupadd share建立 share组,并利用命令 usermod -G share ygj 将 ygj 用户添加到 share组中。② 使用命令 mkdir/home/share 在 /home 目录下建立子目录 share 。③ 使用命令 chown:share/home/share设置 share 目录所属的组为 share组,然后使用命令 chmod -c g+wxr /home/share设置 share组对该目录具有读写和执行权限。④ 在 smb.conf 配置文件末尾添加如图 3-18 所示的配置项目。
3.6 启动和停止 Samba 服务 1.启动 Samba 服务/etc/rc.d/init.d/smb start2 .停止 Samba 服务etc/rc.d/init.d/smb stop3 .重新启动 Samba 服务/etc/rc.d/init.d/smb restart
3.6 启动和停止 Samba 服务4.自动启动 Samba 服务
如果需要让 Samba 服务随系统启动而自动加载,可以执行“ ntsysv” 命
令启动服务配置程序,找到“ smb” 服务,在其前面加上“ *”星号,然后选择“确定”即可 。
利用主机名访问共享资源如果用户需要利用主机名访问共享资源的话,可以设置 lmhosts 文件来实现。它的功能与WINS 服务器类似,就是提供主机名与 IP 地址的对应数据。该文件的存放位置为: /etc/samba/lmhosts 。每条记录的格式为:IP 地址 主机名( NetBIOS 名称)
smbclient
默认情况下, Red Hat Enterprise Linux 安装程序会将smbclient 安装在系统上,读者可使用下面的命令检查系统是否已经安装了 smbclient 或查看已经安装了何种版本。
rpm -q samba-client如果系统还未安装 smbclient ,应将 Red Hat Enterprise Linux 5 的第 1 张安装盘放入光驱,加载光驱后在光盘的Server 目录下找到 smbclient 的 RPM 安装包文件 samba-client-3.0.23c-2.i386.rpm ,使用下面命令安装 smbclient 。
rpm -ivh /mnt/Server/ samba-client-3.0.23c-2.i386.rpm
smbclient
smbclient 的访问命令格式如下。 • 列出目标主机共享资源列表smbclient -L // 主机名或 IP 地址 -U 登录用户名• 使用共享资源smbclient // 主机名或 IP 地址 / 共享目录名 -U 登录用户名
smbmount/ smbumount
在 Linux 服务器或客户端上,可以利用 smbmount 命令将共享资源加载到本机,利用 smbumount 命令将已加载的共享资源卸载。命令格式为:smbmount 共享资源地址 加载点 – o 参数smbumount 加载点
3.8 Windows 客户端的访问 Windows 的客户端不需要
更改任何设置, 就可以在“网上邻居”中打开在 3.4.1节定义的工作组查看到安装了Samba 的 Linux 服务器,或选择菜单“开始→运行”,在打开的“运行”窗口中输入“ \\ 服务器名”或“ \\ 服务器 IP 地址”,然后单击“确定”按钮即可。图 3-29所示的是利用主机名访问Samba 服务器。
3.9 练习题 【练习 1】建立 Samba 服务器,并根据以下要求配置 Sam
ba 服务器。( 1 ) Samba 服务器所属的群组名称为 student 。( 2 )设置可访问 Samba 服务器的子网为 192.168.16.0/24 。( 3 )设置 Samba 服务器监听的网卡为 eth0 。【练习 2】在 Linux 中的用户“ root”与Windows 中的用户“ teacher” 和“monitor” 之间建立映射。【练习 3】建立共享目录 student ,它的本机路径为“ /home/student” ,只有 teacher组的用户可以读写该目录, student 用户只能读取。【练习 4】使用 smbclient 客户端程序登录 Samba 服务器,并尝试下载服务器中的某个共享资源文件。