内容:

1、samba的作用以及由来

2、samba的特性

3、samba的工作过程

4、samba的安装以及配置

5、samba的搭建测试

一、samba的作用以及由来

SAMBA历史溯源(摘自百度百科):

在早期网络世界当中,档案数据在不同主机之间的传输大多是使用 FTP 这个好用的服务器软件来进行传送。不过,使用FTP 传输档案却有个小小的问题,那就您无法直接修改主机上面的档案数据!也就是说您想要更改Linux 主机上的某个档案时,必需要由 Server 端将该档案下载到 Client端后才能修改,也因此该档案在 Server 与 Client 端都会存在。这个时候,万一如果有一天您修改了某个档案,却忘记将数据上传回主机,那么等过了一阵子之后,如何知道那个档案才是最新的?!

既然有这样的问题,可不可以在 Client 端的机器上面直接取用Server 上面的档案,如果可以在 Client 端直接进行 Server 端档案的存取,那么在Client 端就不需要存在该档案数据,也就是说,只要有 Server 上面的档案资料存在就可以!有没有这样的档案系统( File System )?很高兴的是, NetworkFile System, NFS 就是这样的档案系统之一!我只要在 Client 端将 Server所提供分享的目录挂载进来,那么在 Client 的机器上面就可以直接取用 Server上的档案数据,而且,该数据就像 Client 端上面的partition 一般!而除了可以让 Unix Like 的机器互相分享档案的NFS 服务器之外,在微软 ( Microsoft ) 上面也有类似的档案系统,那就是 CommonInternet File System, CIFS 这个咚咚啦!CIFS 最简单的想法就是目前常见的『网上邻居』。Windows 系统的计算机可以透过桌面上『网上邻居』来分享别人所提供的档案数据。不过,NFS仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。伤脑筋,那么有没有让Windows 与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统?

1991 年一个名叫Andrew Tridgwell 的大学生就有这样的困扰,他手上有三部机器,分别是跑DOS 的个人计算机、DEC公司的 Digital Unix 系统以及 Sun 的 Unix 系统。在当时,DEC 公司有发展出一套称为 PATHWORKS 的软件,这套软件可以用来分享 DEC 的Unix 与个人计算机的 DOS 这两个操作系统的档案数据,可惜让 Tridgwell 觉得较困扰的是,Sun的 Unix 无法藉由这个软件来达到数据分享的目的。这个时候 Tridgwell 就想说:『咦!既然这两部系统可以相互沟通,没道理Sun 就必需这么苦命吧?可不可以将这两部系统的运作原理找出来,然后让 Sun这部机器也能够分享档案数据呢?』,为了解决这样的的问题,这老兄就自行写了个program 去侦测当 DOS 与 DEC 的 Unix 系统在进行数据分享传送时所使用到的通讯协议信息,然后将这些重要的信息撷取下来,并且基于上述所找到的通讯协议而开发出ServerMessage Block (SMB) 这个档案系统,而就是这套 SMB软件能够让 Unix 与 DOS 互相的分享数据!( 注:再次的给他强调一次,在Unix Like 上面可以分享档案数据的 file system 是 NFS,那么在 Windows 上面使用的『网络邻居』所使用的档案系统则称为Common Internet File System, CIFS )

因此 Tridgwell就去申请了 SMBServer ( Server Message Block 的简写 ) 这个名字来做为他撰写的这个软件的商标,可惜的是,因为SMB 是没有意义的文字,因此没有办法达成注册。既然如此的话,那么能不能在字典里面找到相关的字词可以做为商标来注册呢?翻了老半天,呵呵!这个SAMBA刚好含有 SMB ,又是热情有劲的拉丁舞蹈的名称,不如就用这个名字来做为商标好了。如此,这成为我们今天所使用的SAMBA 的名称由来。

二、samba的特性

Samba是在linux机unix上实现SMB协议的一个免费软件,有服务器及客户端程序构成,SMB协议是建立在NetBIOS 协议之上的应用协议,是基于TCP138/139两个端口的服务。被用于Lan Manager和Windows服务器系统中,实现不同的计算机直接共享打印机和文件等。

Samba的服务器程序可以实现以下主要功能:

1、文件及打印共享;

2、计算机名与IP的解析;

3、windows服务的支持;

4、用户权限的设置

samba可以实现linux间和linux与windows间的文件共享

三、samba的工作过程

Samba工作流程:

对于Samba服务器来说,其主配置文件smb.conf记录了共享的目录列表。比如share目录,temp目录等。对于每个共享目录,需要配置相应权限,服务器会根据smb.conf文件中的设置,判断客户端是否有权限访问,只有拥有权限才可以访问服务器的资源。Samba服务器同样会对用户的行为进行记录,每一次访问的信息都会记录在日志文件中,以便查询哪些客户端访问过Samba服务器。

四、samba的安装以及配置

1、samba是C/S架构,所以分为客户端和服务端软件:

samba-*.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号

samba-client-*.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具

samba-common-*.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包

samba-swat-*.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等哈)来对Samba服务器进行图形化管理

程序环境:

配置文件:

/etc/samba/smb.conf

主程序:

 nmbd:Network Naming Service, NetBIOS

 smbd:SMB/CIFS Service;

监听的端口:

137/udp, 138/udp

139/tcp, 445/tcp

客户端程序:

mount -t cifs = mount.cifs

smbclient:交互式命令行客户端工具;

    2、samba的配置

smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及相关信息。

smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考。

smb.conf中还有以“;”开头滴,这些都是samba配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能

注意:samba的用户是当前的系统用户,但是处于安全机制,密码却不是当前的系统登录密码,而是另外设置的密码。

smb.conf的配置文件可以分成两部分:Global Settings全局的环境配置和Share Definitions共享的定义设置,其中Global Settings又有几个分类,我们可以对sam.conf进行信息处理查看

[22:19 root@centos6.8~]# grep -E "^#[[:space:]]?-----|=====" /etc/samba/smb.conf
#---------------
#--------------
#======================= Global Settings =====================================
# ----------------------- Network Related Options -------------------------
# --------------------------- Logging Options -----------------------------
# ----------------------- Standalone Server Options ------------------------
# ----------------------- Domain Members Options ------------------------
# ----------------------- Domain Controller Options ------------------------
# ----------------------- Browser Control Options ----------------------------
#----------------------------- Name Resolution -------------------------------
# --------------------------- Printing Options -----------------------------
# --------------------------- Filesystem Options ---------------------------
#============================ Share Definitions ==============================

全局配置Global Settings:

[global]
workgroup = MYGROUP #指定工作组
server string = Samba Server Version %v #服务器名说明
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24  指明要监听的地址或网络接口;、
hosts allow = 127. 192.168.12. 192.168.13.  #白名单
log file = /var/log/samba/log.%m #日志的记录位置
max log size = 50 #日志的大小,单位为K
security = user #基于用户安全认证
share (depricated) #废弃
server (depricated) #废弃
domain #域名
passdb backend = tdbsam #生成的帐号密码存在的数据库
load printers = yes
cups options = raw

共享文件系统Share Definitions:

[shared_ID]

有三类:

[homes]:每个samba用户是否能够通过samba服务访问其家目录;

[printers]:打印服务;

[shared_FS]:用户自定义的共享目录;

常用指令:

comment:注释信息;

path:本地文件系统路径;

browseable:是否可浏览,是否为用户可见;

guest ok:是否允许来宾账号访问;

public:是否公开给所有来宾;

writable:是否可写;

read only = no

write list:拥有写权限的用户或组列表;

用户名

@组名, +组名

自定义共享的方式:

[shared_ID]

comment =  #添加注释内容

path =  #添加要共享的文件路径

guest ok =  #是否允许来宾账号访问;

read only =  #只读也可以

public =  #

browseable =  #是否可以浏览

write list =  #有写权限的列表

注意:定义所用户在服务级的写权限write = yes (read only = no)不建议与write list同时使用;

    3、samba用户管理:

smbpasswd, pdbedit

smbpasswd [OPTIONS] USERNAME

-a:添加

-x:删除

-d:禁用

-e:启用

pdbedit:

-L:列出samba服务中的所有用户;

-a:添加用户为samba用户;

-u USERNAME:

-x:删除

-t:从标准输出接收密码;

访问服务:

(1) smbclient交互式客户端程序:

(1) 查看目标服务上的共享

smbclient -L SMB_SERVER [-U USERNAME]

(2) 访问共享服务

smbclient //SMB_SERVER[/SHARE_NAME] [-U USERNAME]

(2)mount.cifs

mount -t cifs //SMB_SERVER/SHARED_ID  /MOUNT_POINT  -o username=USER,password=PASS

注意:挂载操作中的用户,与-o选项中指定的用户直接产生映射关系;访问挂载,是以-o选项指定的用户身份运行,与本地用户以ID产生映射;

    4、smbstatus命令:

显示samba服务的相关共享的访问状态信息;

-b:显示简要格式信息;

-v:显示详细格式信息;

五、samba的搭建测试

1、一台linux主机安装samba作为服务端,客户端程序一般默认已经安装,主要安装服务程序即可

#yum install -y samba

2、配置smb.cof,在Share Definitions段下添加配置和需要共享的目录:

[windows]comment = windowspath = /etcbrowseable = yesguest ok = yeswritable = yes

    使用testparm命令可以检查语法是否错误

[23:02 root@centos6.8~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[windows]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
client signing = required
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
print ok = Yes
browseable = No
[windows]
comment = windows
path = /etc
read only = No
guest ok = Yes

    启动samba服务

[23:10 root@centos6.8~]# service nmb start
Starting NMB services:                                     [  OK  ]
[23:10 root@centos6.8~]# service smb start
Starting SMB services:                                     [  OK  ]

    添加一个samba帐号,并设置密码:

[23:16 root@centos6.8~]# useradd samba
[23:16 root@centos6.8~]# id samba
uid=505(samba) gid=505(samba) groups=505(samba)
[23:17 root@centos6.8~]# smbpasswd -a samba
New SMB password:
Retype new SMB password:
Added user samba.

3、在linux的客户机挂载测试:

[root@localhost ~]# yum install -y samba-client
[root@localhost ~]# mount.cifs //10.1.252.109/windows /mydata/samba/ -o username=samba,password=nihao
[root@localhost ~]# ls /mydata/samba/
abrt                     ethers            latrace.d         passwd-                       sasl2
acpi                     exports           ld.so.cache       pbm2ppa.conf                  scl
alsa                     favicon.png       ld.so.conf        pcmcia                        securetty
alternatives             fcoe              ld.so.conf.d      php.d                         security
anacrontab               festival          lftp.conf         php.ini                       services
anthy-conf               filesystems       libaudit.conf     pinforc                       sestatus.conf

4、在windows的客户机挂载测试:

这里需要注意权限的问题,默认的安全法则是把本机的root(linux系统)映射为nobody账户,同时要对文件有相关的权限,除了在配置文件中设置,也要满足samba服务端的本地文件系统的权限,另外samba是根据UID来进行权限确认,即客户端和服务端的samba帐号只要UID是相同的其权限也是相同的。

OK,更多文章请关注我的博客。

转载于:https://blog.51cto.com/6638225/1862788

samba文件共享服务详解相关推荐

  1. Linux服务详解(主要基于RedHat系的及Centos默认服务详解)(综合整理)

    转自:http://blog.csdn.net/jj198981/article/details/7605558 acpid ACPI(全称 Advanced Configuration and Po ...

  2. linux开机启动服务详解

    http://blog.163.com/sjt_linux/blog/static/19931031920126295452884/ linux开机启动服务详解(转) 2012-07-29 17:45 ...

  3. NFS 服务详解及实现方式

    NFS 服务详解 NFS 介绍 1.NFS 服务 2.NFS 文件系统 3.NFS 工作原理 4.NFS 各个版本的对比 NFS 程序环境 1.环境介绍 2.NFS 服务主要进程 3.配置防火墙(NF ...

  4. windowsXP服务详解

    XP服务详解 XP服务详解Alerter:当系统发生故障时向管理员发送错误警报,除非电脑处于局域网,而且配有网管管理员,一般不需要.(进程:services.exe) Application laye ...

  5. Windows XP服务详解

      Windows XP服务详解 微软的个人操作系统从Win98发展到WinXP,为什么突然变得那么消耗系统资源呢?以至于很多人都感觉WinXP只是高配置的电脑才能运行的操作系统,其实不然.WinXP ...

  6. 家庭网络视频文件共享服务器,【新手入门教程】 高清播放机与家庭网络文件共享设置详解|新手学堂...

    高清播放机与家庭网络 文件共享设置详解 cxjt2002' h3 }% ~; e- c9 b- A  V 拥有高清网络播放机的用户,经常遇到和希望解决的一个问题就是,如何使高清网络播放机共享浏览播放家 ...

  7. oracle如何启动和停止服务,CentOS启动和停止服务详解

    CentOS启动和停止服务详解 服务简介 Linux 系统服务是在Linux启 动时自动加载, 服务的添加.删除.自动运行及状态 CAMS 在安装过程中会自动添加相关的服务,例如: service c ...

  8. 搭建samba文件共享服务

    文章目录 搭建samba文件共享服务 前言 搭建及设置步骤 实验环境 Win10文件共享到Linux里面 首先创建一个共享目录 GUEST账户启用 打开本地策略 将用户权限分配里面的拒绝从网络访问这台 ...

  9. Windows Server 2008终端服务详解系列5:用ISA 发布SH-TSG

    Windows Server 2008终端服务详解系列5:用ISA 发布SH-TSG 前言: 本系列将全面的介绍Windows Server 2008终端服务,从概念到功能,从安装到配置都会以通俗易懂 ...

最新文章

  1. 冯怡:我想给大家展示一种可能性(图灵访谈)
  2. Drawable、Bitmap、byte[]之间的转换
  3. ​多分类下的ROC曲线和AUC​
  4. 安装完python后、还需要安装什么-初学 Python 需要安装哪些软件?
  5. ibd finance
  6. 蒙特利尔大学发布2021年最新自监督小样本检测综述
  7. python中的__iter__ __reversed__ __next__
  8. bash特性之四、五
  9. 浏览器中的机器学习:使用预训练模型
  10. [原] XAF How to implement a custom attribute to customize the Application Model
  11. 死锁Waiting--DeadLockDemo
  12. openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记
  13. 一个非常标准的Java连接Oracle数据库的示例代码
  14. IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
  15. Scaleform在游戏制作中的使用
  16. android app运行显示两个图标
  17. Java 设计模式 之 装饰器模式(Decorator)
  18. 我的世界JAVA会支持光追吗_《我的世界》RTX beta版视频体验:仿佛打破了次元壁...
  19. 检查linux是否安装rar,rarlinux的安装及使用
  20. C语言从入门到放弃视频教程

热门文章

  1. k均值的损失函数_K-Means算法的实现
  2. python 获取当前是星期几_基金定投选星期几更划算?[python统计分析]
  3. 螺旋千斤顶设计大作业_新型飞机千斤顶的优化设计
  4. densenet网络结构_DenseNet轻量型网络
  5. mac系统和鸿蒙,鸿蒙发力,或将超越苹果系统
  6. sails mysql_sails项目创建与常用基础操作总结
  7. vs code格式化代码
  8. idea新建xml文件
  9. Java讲课笔记24:字节流
  10. 星期、月份、序号和日期_10