简介

Samba服务------SMB协议
Samba协议基础
在NetBIOS 出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议, Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
随着 Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Inter net上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。
SMB协议又称为CIFS(Common Internet File System)协议

在windows当中我们最常见的就是网上邻居可以看到同一互联网上连接的所有用户
在服务器端,linux与window Server相比的稳定性,安全性执行效率以及性价比都是较高的。所以好多window Server下跑的一些服务都会切换到运行在linux服务上,但是对于一些桌面用户来说用到的较多的就是文件共享协议。而在linux中我们可以使用 FTP NFS这类型文件共享协议,但是对于window上比较简单的直接打开的服务在linux中的nfs协议来说是不能在window上使用的这种直接将文件系统共享出来的协议为SMB。

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。

Samba服务是SMB的一个开源实现,而smb的一些主要功能如下:
通过SMB协议进行文件共享
通过SMB协议进行打印共享(我们可以通过在linux上通过smb配置打印服务器,为window提供打印服务)

SAMBA
使用需要安装samba包
yum install samba -ysamba的配置文件为:/etc/samba/smb.conf
配置文件分为三个部分:
[global]定义全局性配置
[homes]定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
[printers]定义打印机共享配置使用的端口:
Port 137    Used for NetBIOS network browsing
Port 138    Used for NetBIOS name service
Port 139    Used for file and printer sharing and other operations
Port 445    Used by Windows 2000/XP when NetBIOS over TCP/IP is disabled
1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
2)Port 138 (UDP) - NetBIOS 数据报服务
4)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)    139/445
samba配置文件
[global]
workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。
hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。log file = /var/log/samba/log.%m
说明:定义记录文件的位置LogFileNamemax log size = 50
说明:定义记录文件的大小size(单位是KB,如果是0的话就不限大小)[共享名]comment = 任意字符串
说明:comment是对该共享的描述,可以是任意字符串。path = 共享目录路径
说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。
用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。browseable = yes/no
说明:browseable用来指定该共享是否可以浏览。writable = yes/no
说明:writable用来指定该共享路径是否可写。available = yes/no
说明:available用来指定该共享资源是否可用。admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = bobyuan,@bobpublic = yes/no
说明:public用来指定该共享是否允许guest账户访问。guest ok = yes/no
说明:意义同“public”。read only = yes 只读设置
create mask = 0644 客户机创建文件权限
directory mask = 0755 客户机创建目录的权限
writable = yes 可写,还要看目录权限

案例一:通过samba提供一个公共文件服务器,所有人都可以访问并写入,但是当前用户不可以删除和修改他人的文件

首先安装samba服务
[root@localhost ~]# yum install samba

更改配置文件
[root@localhost ~]# vim /etc/samba/smb.conf

创建资源目录

创建测试用户
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# smbpasswd -a zhangsan
smbpasswd命令 属于samba套件,能够实现添加或删除samba用户和为用户修改密码。-a:向smbpasswd文件中添加用户;

查看samba用户列表
[root@localhost ~]# pdbedit -L
pdbedit命令用于管理存储在sam数据库中的用户账户,只能由root运行
-L 列出Samba用户列表,读passdb.tdb数据库文件

重启服务smb和nmb
[root@localhost ~]# systemctl restart smb nmb
[root@localhost ~]# systemctl stop firewalld.service //关闭防护墙
[root@localhost ~]# setenforce 0 //关闭seLinux

在Windows上进行测试



测试public权限




通过测试发现我们当前张三用户不仅可以删除root用户的文件还可以删除redhat用户的权限这不合理所以我们需要对这个文件夹进行权限设置来符合题意

[root@localhost test]# chmod o+w /test/ 允许所有用户上传文件

[root@localhost test]# chmod o+t /test/ //只允许删除自己的文件

然后我们在进行测试




经过测试已经符合题意要求


案例二:技术部需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部里的用户可以写入

设置配置文件

根据配置创建资源文件
[root@localhost test]# groupadd jishubu 创建jishubu这个组

[root@localhost test]# gpasswd -a zhangsan jishubu把张三用户添加进技术部组里

设置目录级别的权限
[root@localhost soft]# setfacl -m g:jishubu:rwx /soft 对jishubu这个组设置rwx权限
[root@localhost soft]# systemctl restart smb nmb 重启服务
进行测试
在测试之前可以先清一下缓存
按win+r输入cmd输入net use * /delete



可以正常上传文件

我们在测试一下lisi用户,记得清一下缓存



提示上传文件需要权限


案例:通过Linux客户端进行访问

首先在客户端安装samba-client服务


进行连接
[root@localhost ~]# smbclient -L //192.168.229.130 -U zhangsan


进入目录,可以按tab键显示可以执行的命令



第二种方式,通过挂载的方式连接服务端

通过mount查看挂载成功没

综合案例:多用户挂载的验证策略 (条件:多个用户对当前文件系统有不同的权限并且客户端要求只能通过某一个挂载点目录访问文件系统)
再服务器上通过SMB共享目录/devops,并满足以下要求
1、共享名为devops
2、共享目录devops只能被192.168.229.0/24网段中的客户端使用
3、共享目录devops必须可以被浏览 browseable =Yes
4、用户xixi必须能以读的方式访问此共享,访问密码是redhat
5、用户heihei必须能以读写的方式访问此共享,访问密码是redhat
此共享永久挂载在192.168.229.131上的/devops/目录,并使用用户xixi作为认证任何用户可以通过用户heihei来临时获取写的权限

在服务端进行配置
[root@localhost ~]# vim /etc/samba/smb.conf

根据配置建立资源文件

重启服务
[root@localhost ~]# systemctl restart smb nmb

在客服端挂载,因为要多用户挂载需要安装包cifs-utils,我这里已经安装好了
[root@localhost ~]# yum install cifs-utils


在客户端进行挂载访问服务端的文件
[root@localhost ~]# mkdir /devops //创建挂载目录
[root@localhost ~]# vim /etc/fstab//编辑配置文件实现开机永久挂载

使用mount进行挂载
[root@localhost ~]# mount -a


在客户端添加xixi和heihei用户注意要和服务端xixi和heihei的id要一样
[root@localhost ~]# useradd xixi -u 1003
[root@localhost ~]# useradd heihei -u 1004
-u后面指定id和服务端的要保持一致

用xixi用户进行测试

在服务端添加一些测试文件
[root@localhost ~]# touch /devops/{a..f}

用xixi用户在devops文件中进行测试添加一个文件

切换heihei用户进行测试
[heihei@localhost devops]$ touch 1 2 3使用客户端的heihei添加文件
在服务端查看一下

Linux搭建samba服务及使用案例相关推荐

  1. 虚拟机linux搭建samba,搭建samba服务使在windows上使用虚拟机为linux

    在windows上使用虚拟机为linux 搭建samba服务的操作过程如下: 一.先安装samba; 二.配置服务器: 三.启动服务器: 四.windows下进行访问: 具体操作步骤: 安装samba ...

  2. linux系统安装smb服务,Linux 搭建Samba(共享)服务

    在Windows系统下实现共享不需要安装任何服务,但是在Linux系统下要想实现共享就需要搭建samba服务.samba服务主要就是为了Windows系统与Linux系统下文件互相传递. 在Linux ...

  3. centOs6.5版Linux系统中搭建Samba服务(附搭建Samba设置及相关配置参考)

    一.实验环境(仅做参考,可以用更新版本) Linux版本:CentOS-6.5-i386-bin-DVD1 虚拟机:VMware Workstation Pro14.1.3 虚拟机设置为桥接模式,虚拟 ...

  4. 快速搭建samba服务

    如何在UNIX主机和windows主机共享数据呢?搭建FTP服务是一种,但是FTP能够很方便的上传下载数据,但是如果想修改数据就会比较麻烦了,这时你需要先把文件下载下来,修改以后再上传上去,这种办法很 ...

  5. 网众linux安装教程,网众Linux搭建Samba教程

    网众Linux搭建Samba教程 [日期:2010-12-20] 来源:Linux社区 作者:Linux [字体:大 中 小] Linux SAMBA server 主配置文件/etc/samba/s ...

  6. linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法

    linux下Samba服务和NFS服务配置 一.Samba服务配置过程 samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windo ...

  7. Debian搭建Samba服务

    Debian搭建Samba服务 安装服务 将用户注入到Samba组 在home目录下创建share共享文件 设置share文件的权限(读写可执行) 编译Samba文件 comment :共享名称 pa ...

  8. linux 单机安装yum,Linux搭建Nacos服务(单机版)

    Linux搭建Nacos服务(单机版) 1.下载Nacos安装包 2.安装JDK 3.解压文件 4.启动nacos 5.服务注册&发现和配置管理 6.停止服务 7.开启nacos持久化 8.重 ...

  9. Linux系统搭建Samba服务

    SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.(思考我i们pc上的网上邻居)不同用户访问主机,根据自己的权限可看到或操作相应的资源. 前提条件: ...

最新文章

  1. [转]NYOJ-511-移动小球
  2. lmbs PHP,PHP的GD2函数创建折线图源码示例
  3. linux服务器curl,在Linux系统下使用curl自定义HTTP头的方法
  4. 信号与线性系统分析_什么是线性系统?如何辨别控制系统?控制系统基本要求是什么?...
  5. Kafka 详细配置参数说明
  6. apache开源项目--PDFBox
  7. Reading HTML content from a UIWebView
  8. hashtable允许null键和值吗_【29期】Java集合框架 10 连问,你有被问过吗?
  9. iview tooltip自动消失_实现自动驾驶,为什么要对汽车、行人的轨迹进行预测?它与物体检测、追踪和路径规划间的关系是什么?...
  10. PDF文件能编辑吗,怎么删除PDF文档中的空白页
  11. 对360搜索引擎的评价
  12. odbc监控oracle,在zabbix下面使用ODBC 监控oracle数据库(11.2.0.3)和mysql数据库
  13. JSON的C代码示例
  14. Oracle数据库下载与安装(Windows)
  15. Cocos2dx--Cocos2dx与Android平台的跨平台调用
  16. Elasticsearch和Spring Data Elasticsearch版本对应
  17. vue 两种文档下载方法的实现(后台传递文件流,后台返回文件下载地址)
  18. 运算放大器 你想知道的都在这里
  19. 图论1:哥尼斯堡七桥问题的证明
  20. 布袋除尘器过滤风速多少_布袋除尘器的过滤风速选多少,如何正确地选定过滤风速...

热门文章

  1. ODPS上下文参数的使用
  2. centos 6.2 安装intel 显卡驱动
  3. 救救我吧,今年27岁,想转行学大数据开发
  4. MuMu模拟器Unity Profiler
  5. CREO图文教程:三维设计案例之足球设计图文教程之详细攻略
  6. nginx简介及作用
  7. Altium Designer基础PCB布局布线
  8. uniapp安卓端禁止截屏允许截屏
  9. Debian 启用root账户远程登录并删除多余用户
  10. FANUC机器人进行全部备份和镜像备份以及加载备份文件的具体操作(图文)