Samba文件共享服务

  • Linux系统中一种文件共享程序
  • 在Windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的。SMB(Server Message Block,服务消息块)和CIFS(Common Internet File System,通过互联网文件系统)协议是微软的私有协议,在Samba项目出现之前,并不能直接与linux/UNIX系统进行通信。
  • Samba是著名的开源软件项目之一,它在linux/UNIX系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台文件共享变得更加容易。在部署Windows、linux/UNIX混合平台的企业环境时,选用Samba可以很好地解决不同系统之间的文件互访问题。

Samba软件包的构成:

  • Samba服务的程序组件

    • smbd负责为客户机提供服务器中共享资源(目录和文件等)的访问
    • nmbd负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行查询服务
  • 使用netstat命令可以验证服务进程状态,其中smbd程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议),而nmbd服务程序负责监听UDP协议的137-138端口(NetBIOS协议)
  • netstat -anptu | grep "mbd" 查看Samba运行状态
  • 主配置文件smb.conf
  • Samba服务idea服务的文件位于/etc/samba/目录中,其中smb.conf是主配置文件
  • 在smb.conf文件中,以"#"号开始的行表示注释性的文字,以";"开始的行表示是配置样例
  • grep -v "#" /etc/samba/smb.conf | grep -v ";" | grep -v "$" -->过滤标识符

/etc/samba/smb.conf 文件概述

  • 主配置文件smb.conf
  • [global]全局设置:对整个Samba服务器都有效
  • [homes]宿主目录共享设置:设置Linux用户默认共享,对应用户的宿主目录
  • [printers]打印机共享设置

Samba服务器的常见配置项及含义说明

security = user //安全级别,可用值如下:
share、user、server、domain。 [global]
workgroup = MYGROUP //所在工作组名称
server string = Samba Server Version %v //服务器描述信息 ; netbios name = WORKGROUP //网络主机名
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 //接口地址
; hosts allow = 127. 192.168.12. 192.168.13. //允许主机地址 # logs split per machine
log file = /var/log/samba/log.%m //日志文件位置,//"%m" 变量表示客户机地址
# max 50KB per log file, then rotate
max log size = 50 //日志文件的最大容量,单位为KB [homes]
comment = Home Directories //对共享在服务器中对应的实际路径
browseable = no //该共享目录在"网上邻居"中是否可见
writable = yes //是否可写,与read only的作用相反
; valid users = %S
; valid users = MYDOMAIN\%S [printers]
comment = All Printers
path = /var/spool/samba //共享目录在服务器中对应的真实路径
browseable = no
guest ok = no //是否允许所有人访问,等效于"public"
writable = no
printable = yes //是否允许打印机

testparm程序

Samba服务器提供了一个配置文件检查工具---testparm程序,使用testparm工具可以对smb.conf配置文件的正确性个进行检查,如果发现有错误将会进行提醒。

可匿名访问的共享

  • 可匿名访问的共享适用于公开的资源分享,一般只建议提供只读访问
  • 设置匿名共享文件夹时,在主配置文件smb.conf中主要调整两个地方即可
    1. 可以将默认的安全级别修改为share
    2. 添加一段共享目录配置

需用户验证的共享

  • 匿名共享虽然用起来非常方便,但因为任何人都可以访问到共享的文件数据,在某些时候可能会导致信息的泄露
  • 实现步骤:
    1. 建立Samba用户数据库,使用pdbedit工具可以对共享用户进行管理
    2. 设置用户访问授权,将security安全级别提升为"user"
    3. 确定目录访问授权
      通过Samba服务器共享本地的文件夹时,用户最终是否拥有读取、写入权限,除了需要设置用户授权以外,还需要满足一个前提条件---在服务器本机中,与共享用户同名的系统用户对发布为共享的本地文件夹(如/opt/mytools/)必须有相应的读取、写入权限。//另外,当通过共享目录上传文档时,对于共享用户所上传的文件,创建子目录的默认权限,可以分别使用配置项"directory mask"、"create mask"进行指定

命令

  • pdbedit -a -u 添加一个Samba用户
  • pdbedit -x -u 删除一个Samba用户
  • pdbedit -L 列表查看Samba用户
  • pdbedit -Lv 详细查看Samba用户
  • smbpasswd -a 用户名: 是指给现有用户设置密码。而非建立用户
  • 创建用户是:useradd 用户名
  • 搜索/etc/samba/smbpasswd里面存放了SAMBA所有的用户。

使用命令

  • cat /etc/samba/smbpasswd
  • vim /etc/samba/smbpasswd
  • /etc/samba/ 下没有smbpasswd
    如果没有的话你就使用SMB用户创建命令来创建,这样SMBpasswd文件会自动生成。
    需要注意的是,在/etc/samba/smb.conf文件对权限的设置,优先级低于Linux系统中的文件系统权限,也就是说,想要实现共享目录或者文件具有某种权限,首先必须保证该目录或者文件在文件系统中具有该权限。

共享账号映射(别名)

  • 为了进一步提高Samba共享服务的安全性,除了可以对指定的共享目录设置用户授权以外,还可以采取用户映射、访问地址限制等措施
  • 在使用Samba共享账号时,通常情况下,一个共享用户账号都有一个同名的系统用户账号。
  • Samba服务器提供了"用户名称映射"(Username Map)机制,可以将一个共享用户映射为多个不同的名称(别名)
  • Samba共享账号的映射文件默认位于/etc/samba/smbusers
  • 设置好共享用户的别名记录以后,若要正常启用账号映射功能,需要修改主配置文件/etc/samba/smb.conf,添加全局配置项"username map=/etc/samba/smbusers",然后重新加载配置即可生效

访问地址限制

  • 针对访问Samba服务器的客户机,可以通过"hosts allow"、"host deny"配置项进行访问限制,前者英语指定仅允许访问共享的客户机地址,后者用于指定仅拒绝访问共享的客户机地址,两种方式任选其一即可
  • 访问地址限制一般应用于[global]全局配置部分,也可以应用于某个具体的共享配置段部分。限制的对象可以是主机名、IP地址或者网络段地址(省去主机部分),多个地址之间以逗号或空格进行隔离

使用smbclient访问共享文件夹

  • WINDOWS: \SAMBA服务器地址
  • LINUX : smbclient 命令,查看及登陆使用共享
  • smbclient -U sunboy //192.168.4.11/tools
  • smbclient //192.168.1.108/public -N 【匿名访问】
  • 改配置文件之后就检查语法,重启服务。

使用mount 挂载共享目录

mkdir /media/smbdir
mount -o username=hunter //192.168.4.11/tools /media/smbdir/
Passwd:
mount | tail -n 1

【知识补充】

  • Windows中登录过共享服务器输入的用户名和密码会有记录,实验时可以在dos界面输如下命令以清除记录
  • net use * /del
  • 若window客户机正常访问,但linux客户机访问不了samba服务器时,查看客户机是否安装samba4-libs包
  • 若linux客户机出现:mount: block device //192.168.1.108/share is write-protected, mounting read-only
  • mount: cannot mount block device //192.168.1.108/share read-only 的报错信息,则要安装cifs-utils包

网络邻居是个网站还是问题出现了错误?!

  • 如果是网上邻居的话,清除方式是:
    1. 依次点击“开始”——“运行”;
    2. 在打开的窗口中键入“control keymgr.dll”,回车。

SAMBA 服务配置的更多相关文章

  1. samba服务配置(二)

    需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限: 第二个共享目录所有销售人员只读权限,经理级别的销售人员具有可读可写权限:第三个共 ...

  2. Centos7 -samba服务配置

    Centos7 -samba服务配置 https://blog.csdn.net/zh515858237/article/details/76914905 http://blog.51cto.com/ ...

  3. Samba服务配置简明笔记

    内部服务器之间拷贝数据,用root账号访问,没有做更复杂的设置. 1.用YUM安装samba服务器端及客户端: [root@tenjs05 init.d]# yum install samba sam ...

  4. Centos6.5以下Samba服务配置

    一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...

  5. 《samba服务配置的文本》

    创建简单的samba服务器 samba  很少用于互联网 /大部分用于局域网  网页更新/ 首先看下你是否安装后了samba. rpm -qa | grep samba samba的简介 1)samb ...

  6. Centos samba 服务配置

    1背景 转到Linux有段时间了,vim操作还不能应对工程代码,之前一直都是Gnome桌面 + Clion 作开发环境,无奈在服务器上没有这样的环境, 看同事是(Windows)Source Insi ...

  7. samba服务配置(一)

    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件. samba软件结构: /etc/samba/smb.conf    #samba服务的主要配置文件 /etc/sa ...

  8. linux下Samba服务配置

    SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可 ...

  9. Samba服务配置及配置文件说明

    前言 1.配置Samba服务为什么要关闭防火墙(firewalld)和Selinux? 在linux操作系统中默认开启了防火墙,Selinux也处于启动状态,一般状态为enforing:所以,在我们搭 ...

随机推荐

  1. 常见网页编辑器(富文本,Markdown,代码编辑等)

    编辑器:网页不常用的功能,但却又是不可少的功能,如果要造个编辑器轮子,它可以把人玩死!!前端几大禁忌就有富文本, 为什么都说富文本编辑器是天坑? 下面记录一下常见的一些编辑器,该文随时更新: 富文本编 ...

  2. Nuxt.js中scss公用文件(不使用官方插件style-resources)

    项目多多少少应该都遇到有公用文件这种情况,比如说偶尔某一天产品来找你,能不能明天把网站的这个颜色给我改下?第二天再来给我换回来? 如果再css2.x时代,不使用css预处理技术,这一改只能“查找替换” ...

  3. java 调用腾讯身份OCR接口文档实例(绝对可用)

      1.情景展示 通过读取身份证照片上的信息,实现自动填充功能. 2.原因分析 想要解析照片上所携带的相关信息,就需要识别照片的功能,腾讯提供了免费的身份证OCR接口,可供大家使用. 没有耐心的可以直 ...

  4. C# PKCS7加密解密

    //加密字符串 public string Encryption(string toE) { //加密和解密必须采用相同的key,具体自己填写,但是必须为32位 "); RijndaelMa ...

  5. 机器学习实战-logistic回归分类

    基于LR的回归分类实例 概念 前提理解: 机器学习的三个步骤:模型,损失函数(即样本误差),优化求解(通过损失函数,使得模型的样本误差最小或小于阈值,求出满足条件的参数,优化求解包括:最小二乘法,梯度 ...

  6. PatchMatch小详解

    最近发了两片patch match的,其实自己也是有一些一知半解的,找了一篇不知道谁的大论文看了看,又回顾了一下,下面贴我的笔记. The PatchMatch Algorithm patchmatc ...

  7. 解决ios环境下点击输入框页面被顶起不能自动回弹到底部问题

    第一步:在标签的输入框中添加获取焦点事件  代码写法: @focus="getFocus" (vue代码)  可直接拷贝拿去放在自己页面元素中,如下: <div class= ...

  8. linux lnmp环境下 安装apache教程

    linux lnmp环境下 安装apache教程 源码安装 apr ,apr-util 安装apache要用<pre>wget http://mirrors.cnnic.cn/apache ...

  9. SAINT学习笔记

    SAINT的介绍 SAINT(Significance Analysis of INTeractome)是一种概率方法,用于在亲和纯化-质谱(AP-MS)实验中对阴性对照的诱饵-猎物相互作用进行打分, ...

  10. BBC micro:bit引脚介绍

    另外两个大引脚(3V和GND)是非常不同的! 注意 标记为3V和GND的引脚与电路板的电源相关,千万不要连接在一起. 电源输入:如果BBC micro:bit由USB或电池供电,则可以使用3V引脚作为 ...