目录

Samba

Samba的配置


Samba

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

samba服务的进化

  • smb协议:server message block 服务消息块
  • cifs协议 :common internet file system 通用互联网文件系统

Samba最大的功能就是可以用于 Linux 与 windows 系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端。例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听TCP 139端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,NMB监听UDP的137和138 端口

例如:某台Samba服务器的IP地址为192.1.68.10.10,对应的工作组名称为 xie,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法:

  \\192.168.10.10\共享名

   \\xie\共享名

smaba服务主要有两个程序

  • smb:提供对服务器中文件的共享访问,监听TCP139端口
  • nmb:提供基于netbios主机名称的解析,监听UDP 137、138端口

程序目录:  /usr/lib/systemd/system/smb.service (Rhel7)   或    /etc/init.d/smb (Rhl6)

配置文件: /etc/samba/smb.conf

用户访问samba server一共有四种验证方式 :

  1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
  2. user:共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
  3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
  4. domain:域安全级别,使用主域控制器(PDC)来完成认证

Samba的配置

服务器端

1:关闭 SElinux 和配置防火墙

setenforce  0   

firewall-cmd  --add-port=139/tcp ;  firewall-cmd  --add-port=137-138/udp 
2:安装samba程序:   yum  -y  install  samba
3:修改配置文件 :   /etc/samba/smb.conf

-----------------------------global settings-----------------------------------------
[global] //该设置都是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的
workgroup = MYGROUP //设定 Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %v //设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
log file = /var/log/samba/log.%m //设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件
max log size = 50 //最大日志大小为50kb
security = user //用户访问samba的验证方式,一共有四种,当为 share 时,则是允许匿名访问
passdb backend = tdbsam //passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam;sam是security account manager(安全账户管理)的简写
load printers = yes //设置是否在启动Samba时就共享打印机。
cups options = raw ----------------------------Share Definitions----------------------------------------
[homes] //默认的共享,默认共享samba用户创建时创建的home目录,可以删除
comment = Home Directories //comment是对该共享的描述,可以是任意字符串。
browseable = no //browseable用来指定该共享是否可以浏览
writable = yes //writable用来指定该共享路径是否可写
valid users = %S //允许访问该共享的用户
invalid users //禁止访问该共享的用户
valid users = MYDOMAIN\%S [printers] //默认的共享,共享打印,可以删除
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes
[samba] //自己创建的共享,共享名
comment=share
path=/etc //共享目录是 /etc
writeable=yes //是否可写入
browseable=yes //网上邻居是否可见
guest ok=yes //是否允许所有人访问
valid users=test //允许访问该共享的用户是test用户
write list=test //只有test用户可以写入

查看我们的配置: grep   -v   "#"   /etc/samba/smb.conf  |  grep -v ";" |  egrep "=|]"        使用 testparm 命令可以测试smb.conf配置是否正确
4:创建samba用户:

useradd  -M  -s  /sbin/nologin        test          

smbpasswd   -a  test      给smaba用户test设置密码
5:然后启动服务:  systemctl  start  smb

客户端

windows端访问:    \\192.168.10.10\共享名        如:\\192.168.10.10\samba

Linux端访问:

  • smbclient  -U  用户名   //ip地址/共享名      如: smbclient  -U   test   //192.168.10.10/samba
  • smbclient   -L  192.168.10.10      然后提示输入密码 (以当前用户身份登录)
  • mount  -o  username=xx    //ip地址/共享名      挂载点     将共享文件挂载到本地

相关文章:   Linux文件共享服务之NFS

Linux文件共享服务之Vsftp

Linux文件共享服务之Samba的更多相关文章

  1. Linux文件共享服务之Vsftp

    目录 FTP Vsftp服务的搭建 ftp.sftp.vsftp.vsftpd的区别 FTP FTP的工作原理: FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道.控制通道是和FTP服务器进 ...

  2. Linux文件共享服务之NFS

    NFS(Network File System) 网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...

  3. CentOS6.5下搭建文件共享服务(Samba)

    Samba服务: 本内容为samba服务学习者提供参考 案例描述: 某公司的管理员需要搭建SAMBA服务器,IP地址及允许的访问网段自定义.SAMBA服务器的安全级别为user级,所在工作组为WORK ...

  4. linux文件共享服务

    linux文件共享配置 Windows访问linux 以下操作都在关闭防火墙和关闭selinux的环境下. 关闭防火墙的命令:service iptables stop关闭SELINUX命令:sete ...

  5. 文件共享服务之Samba

    一.Samba服务概述 在Windows网络环境中.机之间进行文件打印和共享是通过微软自己的SMB/CIFS协议来实现的.SMB(服务消息块)和CIFS(通用互联网文件系统)这两个都是微软的私有协议 ...

  6. Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(上)

    Samba简介:在UNIX系统中,Samba是通过服务器消息块协议(SMB)在网络上的计算机之间,共享文件和打印服务的软件包. SMB简介:Server Message Block,SMB协议是一种服 ...

  7. Linux文件共享服务 FTP,NFS 和 Samba

    Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见 ...

  8. Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(下)Samba经典应用案例

    五.[Samba应用案例二] 设置Samba共享目录/software,允许用户jack和mary可以通过Windows客户端访问,并具有读写权限. 1.创建目录/software,添加用户jack, ...

  9. Linux基础学习-Samba文件共享服务

    使用Samba文件共享服务 Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了N ...

随机推荐

  1. LeetCode-层数最深叶子结点的和

    层数最深叶子结点的和 LeetCode-1302 这里可以采用上一题中求解二叉树的深度的方法. 因为需要记录最深结点的值的和,所以这里可以边求和,如果遇到不符合最深结点时再将和sum=0. /** * ...

  2. Java基础学习--集合

    集合 List集合的特点 1.有序的数据集合,存储元素和取出元素的顺序是一致的(存储123,取出123) 2.有索引,包含了一些带索引的方法 3.允许存储重复的元素 List接口中带索引的方法 add ...

  3. Java 虚拟机详解

    深入理解JVM 1   Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言.Java类文件格式.Java虚 ...

  4. CVE-2019-10758-Mongo-express-远程代码执行

    漏洞分析 https://xz.aliyun.com/t/7056 漏洞简介 mongo-express是一款mongodb的第三方Web界面,使用node和express开发. 如果攻击者可以成功登 ...

  5. Educational Codeforces Round 69 (Rated for Div. 2) D. Yet Another Subarray Problem 【数学+分块】

    一.题目 D. Yet Another Subarray Problem 二.分析 公式的推导时参考的洛谷聚聚们的推导 重点是公式的推导,推导出公式后,分块是很容易想的.但是很容易写炸. 1 有些地方 ...

  6. java 动态规划解决最大连续子数列和

    很多动态规划算法非常像数学中的递推.我们如果能找到一个合适的递推公式,就能很容易的解决问题.我们用dp[n]表示以第n个数结尾的最大连续子序列的和,这里第n个数必须在子序列中.于是存在以下递推公式: ...

  7. 2018ICPC南京Problem G. Pyramid

    题意: 询问类似于这样的三角形中:里面正三角形的个数是多少. 思路:打表找了个规律发现就是C4n+3     1 //#include<bits/stdc++.h> 2 #include& ...

  8. k8s:py项目发布完整流程

    k8s:py项目发布流程 1. 编写Dockerfile # cat Dockerfile FROM python:3.6-slim USER root RUN apt-get update & ...

  9. 小白都能学会的Java注解与反射机制

    前言 Java注解和反射是很基础的Java知识了,为何还要讲它呢?因为我在面试应聘者的过程中,发现不少面试者很少使用过注解和反射,甚至有人只能说出@Override这一个注解.我建议大家还是尽量能在开 ...

  10. 答应我,别在go项目中用init()了

    前言 go的 init函数给人的感觉怪怪的,我想不明白聪明的 google团队为何要设计出这么一个"鸡肋"的机制.实际编码中,我主张尽量不要使用init函数. 首先来看看 init ...