Anda di halaman 1dari 76

Sabma 服务器

基础内 容介绍
samba

案例及 其相 关内容 服 十
课程总 结与 操作实 训
务 章
课后习 题


Sabma 服务器

本章教 学目标

 熟悉的工作原理
 了解 Samba 的功能
 掌握 Samba 服务器的配置
 掌握 Samba 客户的操作
Sabma 服务器

 重点:掌握如何实现在 Linux 中共享资源及


使
用网络的共享资源。

 难点: Samba 在实际中的应用

 关键词: smb
Sabma 服务器

10-1 samba 的基本概念


1. samba 的功能
• samba 是一种基于 linux/unix 平台中利用于
smb (服务信息块)协议,实现计算机系统之间
文件共享及互访的软件包:
Sabma 服务器

SMB (Server Message Block ,服务信息块 )


通过在 LINUX 主机上安装支持
SMB 协议的服务器和客户端软件;
SMB 协议是一个高层协议,它提供了在
网络上的不同计算机之间共享文件、打印机
和不同通信资料的手段;
Sabma 服务器

2. samba 的工作原理
samba 核心是两个守护进程 smbd 和 nmbd 程序
,在服务启动到停止期间持续运行;
Smbd 和 nmbd 使用的全部配置信息全都保存在
smb.conf 文件中, smb.conf 向 smbd 和
nmbd 两个守护进程说明输出什么以便共享
,共享输出给谁及如何进行输出。
Sabma 服务器

smbd 处理到来的 SMB 数据包此守护 程序 为网络 中的客


户机 提供 文件和 打印 服务。
nmbd 使其它的主机能浏览 LINUX 服务器;

 为了 将 Linux 作为 客户 机集成到 Windows 环境 中,


Samba 提供了 2 个工具:
 nmblookup 此工具用 于 NetBIOS 名称解 析和测 试
 smbclient 此工具 提供 对 SMB 文件和打 印服 务的访

Sabma 服务器

 smbd Samba 原理

文件共享
SMB SMB
NetBIOS NetBIOS
TCP/IP TCP/IP
Linux Windows

 Nmbd
• 提供 Windows NetBEUI 名字查询服务和网络
浏览服务
Sabma 服务器

Samba 功能概述
网络浏览
Mac 文件共享 solaris

Samba

Windows 2000
Irix
打印共享
访问控制列
Windows 98 表 Linux
Sabma 服务器





Sabma 服务器

给出案 例
利用 Samaba 软件包架设一台资源共享服务器,要求如下:
• 1 、设置 samba 服务器所在工作组为 workgroup ,netbios
名为 Linuxsmb
• 2 、设置 samba 服务器为用户级访问
• 3 、设置共享目录 /soft ,共享名为 soft ,只允许 user1
用户访问,并且具有读写权限;设置共享目录 /share ,
只允许用户 user2 和组 group2 访问,且 user2 用户具有
读写权限,组 group2 中的用户只有读取限权,其他用户
没有浏览权
Sabma 服务器

• 4 、在 windows 2ks 上设置共享目录 winshare ,权限为


everyone 完全控制
• 5 、在 windows 客户端上访问 Samba 服务器上共享资源
• 6 、在 Linux 系统下利用 Samba 客户端访问 Windows 服
务器上的共享资源
• 7 、把 WINDOWS 中的 E 区挂载到 LINUX 中的 /abc 目录
下;
• 8 、设置允许子网 192.168.5.0 访问,禁止 192.168.5.136
机子访问;
Sabma 服务器

与案例有关的内容分析

10-2 samba 的配置


1. 安装 samba 的软件包
• #mount /dev/cdrom // 插入第一张安装光盘
• #cd /mnt/cdrom/RedHat/RPMS
c. samba-common
// 该包中包括服务器和客户均需要的文件
a. samba
// 服务端软件
Sabma 服务器

a. redhat-config-samba
//samba 的 GUI 管理工具
a. samba-client
//samba 客户端软件
a. samba-swat
//samba 的 web 管理工具 , 该包放在第三张安装
光盘中
Sabma 服务器

• 相关文 件 :
 /etc/samba/smb.conf // samba 的核心配置文件
 /etc/rc.d/init.d/smb //samba 的启动脚本
 /etc /samba/smdpasswd // 存放 samba 用户口

 /usr/bin/smbadduser // 添加 samba 用户
Sabma 服务器

 /usr/bin/smbpasswd // 设置 samba 用户的口



 /usr/bin/smbclient //samba 的客户访问工

 /usr/bin/smbmount //samba 客户加载工具
 /usr/bin/smbumount //samba 客户卸载工具
 /usr/sbin/swat //samba 的 web 配置工

Sabma 服务器

配置
 /etc/samba/lmhosts

本地网络主机

netbios 名,用
于与 Windows
系列主机之间

名字
Sabma 服务器

配置
 /etc/samba/smbusers

root
administrator

SAMBA Server
Windows
Sabma 服务器

2. 修改 /etc/samba/smb.conf
• 功能 : 设置 samba 服务器选项和共享选项
• 文件格式:
# 说明语句 // 注释行
[global] // 定义全局选项
……
全局参数 = 值
……
Sabma 服务器

[homes] // 设置共享用户主目录
……
资源共享参数 = 值
……
[printers] // 设置打印机共享
……
资源共享参数 = 值
……
Sabma 服务器

[public] // 共享目录设置
……
资源共享参数 = 值
……
[ 自定义 ] // 自定义的共享
……
资源共享参数 = 值
……
Sabma 服务器

 /etc/samba/smb.conf 配置
分段设置(全局段

语法
配置项 =

注释符号
# ;
Sabma 服务器

 /etc/samba/smb.conf
共享资 源段配置
(用户根目录

可以被网络浏

可写访

 配置项说明
Sabma 服务器

基本全局参数
netbios name = ?
设置 Samba 的 NetBIOS 名字
workgroup = ?
设置 Samba 要加入的工作组
hosts allow = ?<192.168.5. /192.168.5.164>
hosts deny = ? <192.168.5. /192.168.5.164>
允许 / 禁止访问的子网或主机;
Sabma 服务器

dead time=
指定在客户机无操作多少分钟后服务器自动
中断连接
例: dead time=10
max open files=
定义同一个客户机最多能打开的文件数目
例: max open files=100
Sabma 服务器

Samba 的安全等级
security = ?
Share :共享级访问;用户不需要帐户及密

即可登录;
User : 用户级访问;由服务器负责检查帐
户及
密码(默认)
domain
server
Sabma 服务器

基本参数
comment = ?
指定对共享的描述
path = ?
指定共享服务的路径
Sabma 服务器

访问控制参数
writable = yes
指定共享的路径是否可写
browseable =yes
指定共享的路径是否可浏览(默认可以)
available = yes
指定共享资源是否可用
read only = yes
指定共享的路径是否为只读
Sabma 服务器

read list =user , @ group


设置只读访问用户列表
write list = user , @group
设置读写访问用户列表
valid users = user , @group
指定允许使用服务的用户列表
Invalid users = user , @group
指定不允许使用服务的用户列表;
Sabma 服务器

public=yes/no
功能 : 设置共享资源是否允许所有用户访问 , 除 guest
用户以外
guest ok =yes/no
功能 : 设置是否允许 guest 用户访问共享资源
guest only=yes/no
功能 : 设置共享目录只允许 guest 用户访问
Sabma 服务器

3. 启动 samba 服务
( 1 )检查配置文件正确性
#testparm
( 2 )启动服务
# service smb start
Sabma 服务器

4. 建立 samba 用户
方法一:
smbadduser 用户名:用户名
实例: useradd u1
passwd u1
smbadduser u1:u1
Sabma 服务器

• 方法二 :
使用 smbpasswd 命令建立单个 samba
用户
 ( 1 )建立系统用户
 ( 2 ) #smbpasswd [-a] 用户名
• 实例 :
 #useradd u1
 #passwd u1
 #smbpasswd -a u1
 #useradd –G group u1
Sabma 服务器

10-3 Samba 的客户端工具


1. smbclient
• 功能:(1)列表显示指定主机上的共享资源
(2)访问指定主机上的指定共享
• 格式:
 #smbclient -L // 主机名或 ip 地址
 #smbclient // 主机名或 ip 地址 / 共享名 [-U 用
户名 ]
Sabma 服务器

• 实例:
 #smbclient -L //192.168.0.1
 #smbclient -L //192.168.0.1 -U administrator
 #smbclient //192.168.0.1/soft -U administrator
• smb>
Sabma 服务器

补:在 samba 交互界面下的操作命令:


!:执行本地路径
ls :显示文件列表
get :下载单个文件
put :上传单个文件
mget :批量下载文件(支持通配符)
mput :批量上传文件(支持通配符)
mkdir :建立目录
rmdir :删除目录
rm :删除文件
Sabma 服务器

2. smbmount
• 功能:加载 smb 文件系统
• 格式:
 smbmount // 主机名或 IP 地址 / 共享名 装载点
[-o username= 用户名 password= 密码 ]
Sabma 服务器

• 实例 :
 #smbmount //192.168.0.1/c /c
-o username=administrator
Sabma 服务器

smbclient

 语法
servername=/netbios 名 / 共享资源

smbclient servername [ password ] [-L <netbios
name> ] [ -I destinationIP] [ -U username ] [ -p
port ] [ -s <config file> ]
Sabma 服务器

 列出 Windows 服务器中的共享资源
Sabma 服务器

 访问 Windows 系统的共享资源
servicename
Sabma 服务器

smbmount&smbumount
 语法:
smbmount serivce mount-point [ -o options ]
smbumount mount-point
 装载远程 Windows 共享资源
Sabma 服务器

10.3 Samba 服务 器配置 (1)


1. 修改配 置文 件 /etc/samba/smb.conf (客
户机, 服务 器全 部需要 该配 置文件 )
[global]
workgroup = workgroup
security = share
[docs]
path = /usr/share/docs/
comment = share documents
public = yes
Sabma 服务器
10.3 Samba 服务器 配置 (2)
Sabma 服务器

2. 重启动服 务器

#service smb restart

3. 测试
在 windows 下通过网 上邻 居进行 测试
Sabma 服务器

在 linux 共享目录下建立共享文件
Sabma 服务器

启动 vi 编辑器编辑文件
Sabma 服务器

通过 windows 网上邻居进行测试
Sabma 服务器

通过 windows 网上邻居进行测试
Sabma 服务器

通过 windows 网上邻居进行测试
Sabma 服务器

通过 windows 网上邻居进行测试
Sabma 服务器

通过 windows 网上邻居进行测试
Sabma 服务器
10.3 samba 用户 账号
1. 为共享目 录设 置有 效用户
[redhat]
path = /var/redhat
comment = redhat’s file
public = no
valid user=<username><@groupname>
Sabma 服务器
10.3 samba 用户 账号
2. 新建 samba 用户
#useradd username (samba 用户 必须 是系 统
用户 )
#smbpasswd –a username
3. 设置用户 账号 映射
[global]
username map = /etc/samba/smbusers
#smbuseradd unixname:mapname
Sabma 服务器

应用案例
 所有 的员 工都能 够在公 司内 流动 办公, 但不 管
在哪 台电 脑上工 作,都 要把 自己 的文件 数据 保
存在 Samba 文件服务 器上 。
 市场 部、 技术部 都有各 自的 目录 ,同一 个部 门
的人 共同 拥有一 个共享 目录 ,其 他部门 的人 都
只能 访问 在服务 器上自 己的 home 目录 。
 所有 的用 户都不 允许使 用服 务器 的 shell
Sabma 服务器

案例分 析
 所有 的员 工都 能够在 公司 内流动 办公
,但 不管 在哪 台电脑 上工 作,都 要把
自己 的文 件数 据保存 在 Samba 文件 服
务器 上
分析 :需 要 Samba 作为文 件服 务器 ,为所 有
的用 户创 建账号 和目录 ,用 户默认 都在 服务
器上 有一 个 home 目录 ,只 有认 证通过 才能
看到
Sabma 服务器
案例分 析
 市场部、 技术 部都 有各自 的目录 ,同 一
个部门的 人共 同拥 有一个 共享目 录, 其
他部门的 人都 只能 访问在 服务器 上自 己
的 home 目录 。
分析 :需 要为市 场部和 技术 部创 建不同 的组
sales 和 tech ,并且 分配 目录, 把所 有市 场部
的员工 加入 sales 组,技术 部的 员工加 入 tech
组,通 过 samba 共享 sales 和 tech 组。
 所有的用 户都 不允 许使用 服务器 的 shell
分析 :建 立用户 账号的 时候 不分 配 shell 。
Sabma 服务器
案例实施
1. 为所有的用户创建账号和目录,不分配 shell 。假
设市场部有 tom 、 jack ,技术部有
red 、 blue ,总经理 ceo ,财务是 finance

2. 建立组 sales 和 tech ,把所有市场部的员工加入


sales 组,技术部的员工加入 tech 组。

3. 创建两个目录 /home/sales 和 /home/tech ,并且


修改这个目录的权限,分别属于 sales 组和 tech

4. 通过 samba 共享 /home/sales 和 /home/tech 组

5. 测试
Sabma 服务器

配置过程--添加账号和组 (1)
1. 确认 /etc/samba/smb.conf 是默认状态,即还原配置项。
安全级别 security 是 user ,这样客户机用户就可以登录服
务器了。
2. 建立用户账号和组
#groupadd sales
#groupadd tech
#useradd –g sales –s /bin/false tom
#useradd –g sales –s /bin/false jack
#smbpasswd –a tom
New SMB password:
Retry new SMB password:
Added user tom.
同样的方法加 jack.
(2) 服务器
添加用户Sabma
通过脚本来加用户
#for user in red blue
>do
>useradd –g tech –s /bin/false $user
>smbpasswd –a $user
>done
确认用户账号是写在 Samba 的数据库中
#more /etc/samba/smbpasswd
New SMB password:
添加其他用户 Retype new SMB password:
Added user red.
#useradd ceo New SMB password:
#useradd finance Retype new SMB password:
Added user blue
#smbpasswd –a ceo
#smbpasswd –a finance
Sabma 服务器

添加用户和创建目录 (3)
#mkdir /home/sales /home/tech
 查看 默认 权限
#ls –ld /home/sales /home/tech
drwxr-xr-x 2 root root 4096 … sales
drwxr-xr-x 2 root root 4096 … tech
修改 所有 权
#chgrp sales /home/sales
#chgrp tech /home/tech
Sabma 服务器

添加用户和创建目录 (3)
设置 权限 (默认 755 改成 770 ,因为 组成 员都
可以 执行 写等权 限)
#chmod 770 /home/sales
#chmod 770 /home/tech
确认 目录 权限
#ls –ld /home/sales /home/tech
Sabma 服务器

设置共享 (4)
#vi /etc/samba/smb.conf
[sales]
path = /home/sales
comment =sales
public = no
valid users = @sales
write list = @sales
creat mask = 0770 // 注意实 际使用 的时 候可能
是 0660 ,因为普 通文 件没有 执行 权限
directory mask = 0770
Sabma 服务器
设置共享
[tech]
path = /home/tech
comment =tech
public = no
valid users = @tech
write list = @tech
creat mask = 0770 // 注意实 际使用 的时 候可能
是 0660 ,因 为普 通文件 没有 执行权 限
directory mask = 0770
Sabma 服务器

查看文件并重启服务器
查看文件有无错误
#tail –f /etc/samba/smb.conf

重启服务器
#service smb restart
Sabma 服务器

测试
使用 客户 端工具 smbclient 访问 服务 器
#smbclient –L 10.0.0.254 tom%tom
#smbclient –L 10.0.0.254 jack%jack
其他 用户 也可以 看到 自己的 home 目录
#smbmount //10.0.0.254/sales /mnt –o ceo%ceo
结果 : SMB connection failed ,原因 ceo 没有
访问 sales 的权 限
Sabma 服务器
测试
#smbmount //10.0.0.254/ceo /mnt –o
username=ceo%ceo
#ls /mnt // 没有 内容
#ls –a /mnt // 自己的 home 目录 下的 内容

#smbmount //10.0.0.254/sales /mnt –o


username=tom%tom
# cp /etc/hosts /mnt
#ls –l /home/sales/hosts
Sabma 服务器

分组操 作
…………………………

点评、 操作演示 :
………………………………………..
Sabma 服务器





Sabma 服务器

归纳与 总结 :
 通过本 节课的学习 我们要掌握 以下内容 :
Samba 服务器的配置和 Samba 客户的操作
Samba 的工作原理
Samba 的功能
Sabma 服务器

上机操 作实 训
要求:
设某公司有财务、技术、领导 3 个部门,我们分别为 3 个部
门建立 3 个用户组为 caiwu 、 network 、 lingdao ; 3 个部
门里各有 2 个用户,我们建用户分别为: caiwu01
caiwu02 、 network01 network02 、 lingdao01 lingdao02
具体配置如下:
1 、首先服务器采用用户验证的方式,每个用户可以访问自己
的宿主目录,并且只能有该用户访问宿主目录,并且有完全
的权限,而且他人不能看到你的宿主目录;
Sabma 服务器

2 、建立一个 caiwu 的文件夹,希望 caiwu 组和 lingdao 组的


人能看到, network02 也可以访问,但只有 caiwu01 有写的
权限;
3 、建立一个 lingdao 的目录,只有领导组的人可以访问,并
读写,还有 network02 也可以访问,但外人看不到那个目录

4 、建立一个文件交换目录 exchange ,所有的人都能读写包
括 guest 用户,但每个人不能删除别人的文件;
5 、建立一个公共的只读文件夹 public 所有的人只读这个文件
夹的内容;
Sabma 服务器





Sabma 服务器

课后习 题
1 、 samba 中要让 windows 主机在网上邻居中看到,
则配置文件中要有
 D
A 、 security= B 、 valid users=
C 、 read only = D 、 netbios name=
2 、重启 samba 的命令是  B
A 、 /etc/rc.d/init.d/samba restart B 、 /etc/rc.d/init.d/smb
restart
3C、 /etc/rd/init.d/named
、Linux 中实现与 Windows restart D 、 /etc/rc.d/init.d/smb
主机之间的文件及打印共享使用  C
start
A 、网络邻居 B 、 NFS C 、 samba D 、 NIS
4 、在 smb.conf 中设置 Linux 主机的 netbios 名称选项是  A
A 、 netbios name B 、 netbios C 、 hostname
D 、 name
Sabma 服务器

5 、 SAMBA 服务器的默认安全级别是:  B
A. share B. user C. server D. domain
6 、一个完整的 smb.conf 一般有什么组成  CD
A 、消息头 B 、参数 C 、全局参数 D 、共
享设置
7 、 smb 不仅可以在 linux 和 windows 之间而且还可以在 linux
之间共享文件  Y
8 、 samba 中 smb.conf 的 valid users 是指定不允许使用 samba
服务器的用户  N
Sabma 服务器

9 、 Red Hat Linux 9.0 中, Samba 服务管理脚本 C( 



A . Nmbd B . smbd C . Smb D . nmb
10 、 在 Red Hat Linux 9.0 下 , 设置 Samba 用户安全级别的参
数: (  ) D
A . Workgroup B . netbios name
C . guest ok D . security
11 、添加 samba 帐户的命令是 (C )
A.Useradd B.smbuseradd C.smbadduser
D.addsmbuser