SMB协议

Server Message Block,服务消息块

CIFS协议

Common Internet File System,通用互联网文件系统


Samba软件包构成

  • samba

  • samba-common

  • samba-client

  • samba-swa


Samba服务器的主要程序

  • smbd:提供对服务器中文件、打印资源的共享访问,端口(TCP:139,445)

  • nmbd:提供基于NetBIOS主机名称的解析,端口(UDP:137,138)

Samba的服务脚本

  • /etc/init.d/smb

Samba的配置目录及文件

  • /etc/samba/

  • /etc/samba/smb.conf

配置文件检查工具:testparm


smb.conf文件的配置内容

  • [global]:全局设置

  • [homes]:用户目录共享设置

  • [printers]:打印机共享设置

  • [myshare]:自定义名称的共享目录设置

辅助配置内容

  • 注释行:以 # 号开头的行

  • 配置样例行:以 ; 号开头的行

  • 结合grep命令可以提取有效配置行: grep -v "^#" smb.conf | grep -v "^;" | grep -v ^$


常见全局配置项的含义

  • workgroup:所在工作组名称

  • server string:服务器描述信息

  • security:安全级别,可用值如下:share、user、server、domain

  • log file:日志文件位置,“%m”变量表示客户机地址

  • max log size:日志文件的最大容量,单位为KB

  • passwd backend:设置共享账户文件的类型


常见共享目录配置项的含义

  • comment:对共享目录的注释、说明信息

  • path:共享目录在服务器中对应的实际路径

  • browseable:该共享目录在“网上邻居”中是否可见

  • guest ok:是否允许所有人访问,等效于“public”

  • writable:是否可写,与read only的作用相反


访问地址限制

  • 一般用在全局配置[global]部分

  • hosts allow配置项:仅允许特定的客户机

  • hosts deny配置项:仅拒绝特定的客户机

  • 客户机地址表示形式:

  1. 以空格分隔多个地址

  2. 主机名或IP地址,例如: 192.168.168.11 或者 prtsvr

  3. 网络地址,例如:173.17. 或者 173.17.0.0/255.255.0.0


实验案例

需求描述

  • 创建共享目录public、training、devel

  • 目录public,所有员工都可以访问,但只读

  • 目录training目录,存放公司的技术培训资料

  • 目录devel存放项目开发数据

实现思路

  • 创建共享目录,并设置目录权限

  • 修改smb.conf,添加共享设置,并重启服务

  • 在客户机以不同的用户访问共享文件夹


在/var/share/目录中建立三个子目录public,training,decal

构建Samba文件共享服务_Linux


建立用户和组

构建Samba文件共享服务_操作系统_02


修改devdl目录的属组和权限

构建Samba文件共享服务_samba_03


添加删除samba的共享用户

pdbedit

-a 添加

-x 删除

-u 指定用户名

-L 列出所有samba用户

构建Samba文件共享服务_Linux_04

构建Samba文件共享服务_Linux_05


修改smb.conf配置文件

构建Samba文件共享服务_Linux_06

构建Samba文件共享服务_共享_07

构建Samba文件共享服务_共享_08

构建Samba文件共享服务_samba_09


启动smb服务

构建Samba文件共享服务_共享_10

在共享目录中新建一点文件

构建Samba文件共享服务_Linux_11


检查smb.conf文件

构建Samba文件共享服务_samba_12


在其它客服机上验证,先拿yua01用户

构建Samba文件共享服务_操作系统_13

构建Samba文件共享服务_共享_14


能访问public目录

构建Samba文件共享服务_samba_15

构建Samba文件共享服务_Linux_16


但是访问其它目录就拒绝访问了

构建Samba文件共享服务_Linux_17


下面拿ben01用户测试

构建Samba文件共享服务_共享_18


所有共享目录都能访问

构建Samba文件共享服务_Linux_19

构建Samba文件共享服务_samba_20

构建Samba文件共享服务_共享_21

构建Samba文件共享服务_操作系统_22


也能写入

构建Samba文件共享服务_操作系统_23


下面拿tec01用户测试

构建Samba文件共享服务_共享_24

构建Samba文件共享服务_操作系统_25


能访问所有共享目录

构建Samba文件共享服务_操作系统_26

构建Samba文件共享服务_samba_27

构建Samba文件共享服务_共享_28


但是没有写入的权限

构建Samba文件共享服务_共享_29