Professional Documents
Culture Documents
基础内 容介绍
samba
第
案例及 其相 关内容 服 十
课程总 结与 操作实 训
务 章
课后习 题
器
Sabma 服务器
本章教 学目标
熟悉的工作原理
了解 Samba 的功能
掌握 Samba 服务器的配置
掌握 Samba 客户的操作
Sabma 服务器
关键词: smb
Sabma 服务器
2. samba 的工作原理
samba 核心是两个守护进程 smbd 和 nmbd 程序
,在服务启动到停止期间持续运行;
Smbd 和 nmbd 使用的全部配置信息全都保存在
smb.conf 文件中, smb.conf 向 smbd 和
nmbd 两个守护进程说明输出什么以便共享
,共享输出给谁及如何进行输出。
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 服务器
与案例有关的内容分析
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 服务器
配置
/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 服务器
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 服务器
• 实例:
#smbclient -L //192.168.0.1
#smbclient -L //192.168.0.1 -U administrator
#smbclient //192.168.0.1/soft -U administrator
• smb>
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 服务器
2. 重启动服 务器
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
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 目录 下的 内容
分组操 作
…………………………
点评、 操作演示 :
………………………………………..
Sabma 服务器
页
首
回
返
Sabma 服务器
归纳与 总结 :
通过本 节课的学习 我们要掌握 以下内容 :
Samba 服务器的配置和 Samba 客户的操作
Samba 的工作原理
Samba 的功能
Sabma 服务器
上机操 作实 训
要求:
设某公司有财务、技术、领导 3 个部门,我们分别为 3 个部
门建立 3 个用户组为 caiwu 、 network 、 lingdao ; 3 个部
门里各有 2 个用户,我们建用户分别为: caiwu01
caiwu02 、 network01 network02 、 lingdao01 lingdao02
具体配置如下:
1 、首先服务器采用用户验证的方式,每个用户可以访问自己
的宿主目录,并且只能有该用户访问宿主目录,并且有完全
的权限,而且他人不能看到你的宿主目录;
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 服务器