10.Samba

10.1.samba概念

Samba服务是一种类似于ftp或nfs的一种文件共享的服务,是基于SMB协议的在网络上的计算机之间远程共享Linux文件和打印服务。
利用Samba服务器,可以在任意系统之间完成文件共享,有利的除去了nfs的缺陷,同时Samba主要是用于局域网内的文件共享,SMB协议是建立在NetBIOS协议之上的一个应用协议,使用的是利用138和139端口的tcp协议的一种服务,微软有人使用NetBIOS开发出来一个网络文件/打印服务。
Samba服务的核心进程是smbd和nmbd进程,smbd用于为客户机和服务器进行协商,nmbd用于使客户机能浏览器Linux服务器的共享资源。

10.2.NetBIOS

10.2.1.NetBIOS概念

NetBIOS(Network Basic Input/Output System),网络基本输入输出系统,主要用于数十台(20~200)计算机的小型局域网,这种协议其实是一种程序编程接口(API),给局域网上的程序使用。作用是为了给局域网提供网络以及其他特殊功能。
netbios系统可以利用多种方式将netbios名解析为相应的IP地址,实现信息通信,所以在局域网内部使用netbios系统可以方便的实现消息通信及资源共享,而且具有占用系统资源少、传输效率高的优点。
NetBIOS名用于表示网络上NetBIOS资源。

10.2.2.NetBIOS行为方式

netbios请求以网络控制块(NCB:Network Control Block)的形式提供,NCB中包含了信息存放位置和目标名称等信息。NetBIOS提供了七层模型的应用层和传输层功能。
netbios支持两种通信模式:

  1. 会话(session):指两台计算机建立一个连接进行会话,可以大量处理信息,支持差错检测和恢复功能。
  2. 数据报(datagram):面向无连接操作,发送的信息较少,支持广播发送数据。
    3.NetBIOS名称映射
    netbios名称为16字节长(实在不够就拿占位符补充),对使用的字节没有限制,对于不需要路由的局域网,将名称映射到ip地址有三种方法:
  3. IP广播,即局域网内如果一台计算机发现了另一台计算机的netbios名称,但是不知道它的名字(也就是缓存中没有记录),就会发一个广播信号,内容包含这个陌生计算机的netbios名称,然后这个陌生计算机收到信息之后就会返回自己的IP。
  4. lmhosts文件:这个文件是专门负责映射IP地址和network计算机名称的文件。
  5. NBNS:NetBIOS命名服务器负责将NetBIOS名称映射到IP地址上,该服务由nmbd进程执行。

10.3.Samba工作原理

1.协议协商:客户端向服务器发送请求数据报,然后服务器返回响应数据报。请求和接收的数据报都是netprot类型的指令包,用于通信双方身份(是否是smb客户)、权限确认等作用,决定是否可以建立连接。
2.建立连接:当协商完成后,客户端发送session setup指令,同时提交账号和密码,服务器进行身份(具体是哪个用户)验证。
3.访问资源:建立连接之后,客户端访问共享资源。客户端发送tree connect指令包。
4.断开连接
前3步虽然发送了不同的信号,但是工作方式都是客户机向服务器发送请求,然后服务器向客户机返回响应,过程类型http的响应过程,都是一种c/s模式的关系。

10.4.安装Samba

命令yum -y install samba*即可安装上Samba所有的关联包,如果使用rpm安装,那么一共需要安装14个左右的依赖包。
samba的服务进程是smb,使用systemctl相关命令进行管理

10.5.Samba的安全级别

Samba给访问自己的用户分了五种安全级别以保障服务器的安全。
share:不需要提供用户名和密码就可以访问服务器(匿名用户能访问的前提就是安全级别为share,否则任何设置都无意义)
user:需要提供用户名和密码,身份由服务器验证。
server:需要用户名和密码,还需要指定其他的windows服务器或另外的Samba服务器作为身份验证。
domain:需要提供用户名和密码,指定windows域控制器做身份验证,Samba服务器只能作为域的成员客户机。
ads:需要比domain更高的验证。

10.6.配置文件

Samba服务器的主配置文件是/etc/samba/smb.conf,该文件向smbd和nmbd进程说明共享的内容、共享输出对象以及如何进行输出。
配置文件由全局设置(Global Definitions)和共享定义(Share Definitions)两部分构成,全局设置用于设置服务器整体的运行环境,共享定义用于设置文件共享和打印共享资源。定于语法为[标签],然后换行写参数:
[global](必须要有的,设置全局参数)
*workgroup=MYGROUP 设置服务器所在的工作组
*server string=Samba Server Version %v 设置服务器的描述信息
(这两个参数必须,但一般不修改,为默认)
*netbios name=MYSERVER 设置服务器的NetBIOS名字
*interface=lo eth0 172.18.252.27/24 设置服务器所用的网卡
*hosts allow=127. 192.168.12. 设置允许访问你服务器的网络地址、主机地址、域等。
允许指定主机:如hosts allow=192.168.0.5
允许某网段:如hosts allow=192.168.0.
允许某域:如hosts allow=.sh.com
允许所有主机:hosts allow=ALL
hosts deny=192.168.12. 设置访问黑名单,格式和allow一样
guest account=pcguest 设置默认账户名字,如果设置为pcguest,则默认是nobody用户。
*log file=/var/log/samba/log.%m 设置日志文件路径,%表示客户机主机名字
*max log size=500 日志文件的最大值,单位是k,值为0表示无限制
*security=user 设置用户访问服务器的安全级别
(命令password -a +[username] 给username设置samba密码)
encrypt password=yes 表示对Samba的密码进行加密
smb passwd file=/etc/samba/smbpasswd设置Samba密码文件路径
password server=192.168.0.100用于设置身份验证服务器名称(只有在设置security的级别高于user才会生效)
load printers=yes 允许Samba服务器使用打印机功能
printcap name=/etc/printcap 设置打印机配置文件路径
deadtime=15客户端没有操作15分钟后服务器将中断
共享定义的标签就是共享名称,可以自定义,共享目录的内容格式是固定的:
[selfname]
*comment=it 设置共享目录的备注说明
*path=/root/it 共享目录的绝对路径
*printable=yes 允许打印
public=yes 允许匿名用户访问(只有安全级别为share才有效)
guest ok=yes 允许匿名用户访问共享资源
guest only=yes 仅仅允许匿名用户访问
guest account=/home/it 指定匿名用户访问共享目录的用户账户
read only=yes 允许以只读方式读取目录
writable=yes 允许以可写的方式更改目录
vaild users=user1,@gourp2 仅有这些用户可以访问共享资源
invalid users=user1 这些用户不能访问共享资源,且此参数优先级高于vaild users的优先级
create mode 设置默认创建文件时的权限
diretory mode 设置默认创建目录时的权限
force group设置默认创建的文件属组
force user 设置默认创建的文件主人
hosts allow 仅有该网段的人可以访问
hosts allow 该网段的人不能访问共享资源

10.7.Linux客户端

Linux中的客户端需要安装samba-common和samba-common的安装包,使用yum一键安装的包里是包括这两个的,在Linux上使用Samba服务主要使用smbclient命令及其子命令。
smbclient -L+ip 直接以匿名用户的身份登录服务器,所以不用输入密码,直接回车就能看到共享目录列表。
smbclient -L +ip -U +username 登录服务器并指明用户,需要输入用户名。
smbclient -n+NetBIOS名称 指定服务器netbios名称
子命令:
allinof 显示文件或目录信息
dir列出当前目录的内容
du计算当前目录大小
exit/quit 退出连接
get 从服务器上下载一个文件
mget从服务器上下载多个文件
mput向服务器上传多个文件
客户端可以将共享目录挂载在本地,命令是:
mount -o username=[samba用户名] //ip/共享目录名 本地挂载点

10.8. windows客户端

win10系统中,打开运行工具(windows键+E),输入命令\ip(ip指服务器ip地址),即可进入

Linux服务.NO7——samba相关推荐

  1. linux服务之samba

      samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windows功能强大,而且访问速度快.安全.samba服务器具有这么多优点, ...

  2. Linux服务器之Samba匿名访问配置

    摘要:Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共 ...

  3. Linux服务之Samba服务篇

    Samba服务 桑巴Smb是基于cs架构 作用:用于跨平台进行文件共享 优点:兼容性好,较为安全(具备身份验证) 缺点:仅限内网环境使用 应用:一般在办公环境下使用 rz 也是一种可以在Windows ...

  4. Linux服务配置 samba服务器配置

    一.什么是samba服务器? 先上一段百度百科: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信 ...

  5. linux服务篇-Samba服务

    文件和打印机的一个共享程序,Samba=smb(由于smb被windows使用,所以命名为Samba)=server Manage Block! Samba最先在Linux和Windows之间架起了一 ...

  6. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

  7. 介绍一下linux下的samba服务

    介绍一下linux下的samba服务 实验环境 VMware 6.5.2 +redhat Enterprise 5 AS 我的内核版本 上面两个是windows server 2003 共享文件时的画 ...

  8. linux下的SAMBA服务------SMB协议

    SAMBA基本介绍 概念 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. ...

  9. 【Linux常用服务器配置——Samba服务】

    目录 1.简介 2.Samba的服务组成 3.安装samba服务 4.查看安装状况 5.设置开机自启动 6.启动服务 7.查看samba服务进程 8.防火墙设置 9.修改主配置文件 10.建立共享目录 ...

最新文章

  1. 成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程
  2. Centos下MySql用户管理
  3. java annotation应用_Java Annotation高级应用
  4. 一文教你用java实现儿时的超级玛丽游戏
  5. 小白都能看懂的干货!大数据这朵“后浪”,能卷起多大的风浪?
  6. 2019春季发布会后苹果股价一度跌逾2% 盘后微涨0.22%
  7. kpatch: dynamic kernel patching
  8. python数据类型-元组(tuple)
  9. 适用于苹果Mac的 5 个最佳 SSH 客户端软件
  10. 在Global Mapper中导入点的文本格式
  11. 最新emlog5.3.1系统YiT模板源码
  12. ThinkPHP带表情无限级评论回复
  13. 元数据管理技术--Atlas
  14. Geometric Transformation(几何变换)
  15. 中文新闻分类 数据集_NLP-新闻文本分类实战
  16. 它来啦,它来啦!三子棋小游戏来啦!!!
  17. c#断点续传下载文件
  18. MFC封装的base64编码解码函数
  19. 创新案例分享 | 构建医院绩效管理系统,助力医疗产业蓬勃发展
  20. ai人工智能换脸原理_他们如何看待AI监视内部工作原理

热门文章

  1. 深度学习、生成对抗、Pytorch优秀教材推荐
  2. github用相对路径显示图片_【图文详解】如何利用Github在Markdown中插入图片?
  3. hackthebox(HTB) Ambassdor !
  4. java8新特性(拉姆达表达式lambda)
  5. 针对前端初级学者,如何在windows下搭建react-native环境详细教程
  6. Ubuntu系统的SSH出现“Connection reset by IP port 22 ”
  7. 【ThreeJS基础教程-初识Threejs】1.2掌控我们的物体和模型
  8. Oracle错误:ORA-01400
  9. 痞子衡嵌入式:我被邀请做科锐国际旗下数科同道主办的技术沙龙嘉宾
  10. matlab 实现水印添加