前面说到了FTP和NFS,由于FTP是客户端和服务器基于ftp应用协议进行交换数据的,它不支持挂载共享目录的方式,而NFS又不支持跨平台,所以就催生了第三种网络共享服务:samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

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

samba监听的端口:

137/udp,138/udp,139/tcp,445/tcp

samba在linux上实现三种服务: 默认启用前两个服务

  nmbd: 实现netbios协议

  smbd: 实现cifs协议

  winbindd: 实现让samba工作后能够将linux加入到ad域(活动目录中)

Note:CIFS: Common Internet File System,Windows各主机之间共享文件系统的协议,类似于linux上的nfsNetBIOS: Windows基于主机名实现互相通信的机制;只截取15个字符的主机名

一、CentOS6为客户端,Windows为服务端

1.服务器端操作

 创建共享目录新建文件夹test点选工具 --> 文件夹选项 --> 查看 --> 取消使用简单文件共享 --> 应用 --> 确定   右键test文件夹 --> 共享和安全 --> 选中共享此文件夹(可以修改共享文件名,比如这里设为tools,下面会用到) --> 权限 --> 添加 --> 选中test用户 --> 确定 --> text的权限可以勾上读取和更改 --> 确定      windows添加用户:右键我的电脑 --> 管理 --> 本地用户和组 --> 用户 --> 右键空白区域新增用户(比如test用户)

2. 客户端操作

安装samba客户端

yum list samba-client*    //查看samba相关安装包,默认已安装客户端samba-client

3. 客户端访问服务器端数据

 3.1. 交互式数据访问:

客户端以test用户连接服务器

samblient -L HOST -U USERNAME  # smbclient -L 192.168.1.301 -U test  //192.168.1.301为windows服务器ip, test为登录用户名

获取到共享信息后,连接共享文件夹

 smbclient //SERVER/shared_name -U USERNAME  //UNC路径: \\SERVER\shared_name  # smbclient //192.168.1.301/tools -U test

连上后打开一个类似于ftp的客户端工具

smb:\> 

测试上传数据到服务器

smb:\> lcd /etc
smb:\> put fstab

 3.2. 基于挂载的方式访问

挂载到/mnt目录下 

mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD  # mount -t cifs //192.168.1.301/tools /mnt -o username=test

访问数据

 ls -l /mnt  //windows上的文件默认都有执行权限 

二、以CentOS6为服务端,windows作为客户端

1.服务端操作:

  安装samba

  CentOS 6默认已经安装好了samba的客户端程序,这里要做服务端,所以安装samba服务端程序:samba.x86_64

  # yum -y install samba

samba相关文件组成:  服务脚本:      /etc/rc.d/init.d/nmb/etc/rc.d/init.d/smb  主配置文件:    /etc/samba/smb.conf  samba用户:      账号:都是系统用户,/etc/passwd    密码:samba服务自有密码文件    将系统用户添加为samba用户的命令:        smbpasswd:          -a Sys_User:添加系统用户为samba用户          -d Sys_User: 禁用指定用户账号          -e Sys_User: 启用指定用户账号          -x Sys_User: 删除指定用户账号

修改工作组

# cd /etc/samba# vim smb.conf  修改workgroup = WORKGROUP  //windows工作组默认为workgroup,CentOS工作组默认为MYGROUP

添加系统账号

# useradd smbuser1  //添加系统账号
# smbpasswd -a smbuser1  //将smbuser1密码添加到smbuser1账号中

测试

客户端windows系统连接服务器:\\192.168.1.104\
输入用户名和密码
登录到用户的家目录

三、多个用户账号登录同一个共享目录

1.服务器端操作:

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

# vim /etc/samba/smb.conf 

最后一行添加自定义共享:

 [shared_name]path = /path/to/share_directory  //共享文件路径comment = Comment String      //注释信息guest ok = {yes|no}  //是否允许来宾账号访问public = {yes|no}  //是否允许公开writable = {yes|no}  //是否可写read only = {yes|no}  //是否只读write list = +GROUP NAME  //哪些组中用户可写

比如:

[shared]comment = My Shared Testing.path = /shared/sambaguest ok = yeswritable = yes

测试语法:

# testparm

创建共享目录:

# mkdir /shared/samba# ls -ld /shared/samba  //smbuser1没有写权限# setfacl -m u:smbuser1:rwx  /shared/samba  //设置smbuser1用户能读能写能执行

重启服务:

# service nmb restart;service smb restart;

2. 客户端操作

安装samba客户端:

# yum -y install samba-client

连接服务器:

# smbclient //192.168.1.104/shared -U smbuser1  //注意:客户端访问的是配置段定义的名字shared,而不是创建的目录

3. 测试

客户端连接完服务器后,打开一个类似ftp的客户端:

smb:\> lcd /etcsmb:\> put fstab  //成功上传

四、samba图形化工具: samba-swat

安装samba-swat

# yum install samba-swat -y

工具介绍:

这个工具是基于web服务提供图形界面,它自己提供了web服务器,以超级守护进程xinetd代为管理,在/etc/xinetd.d目录下有个文件swat

打开swat文件

# vim swat

# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{port            = 901  socket_type     = streamwait            = noonly_from       = 127.0.0.1  //这里改为192.168.1.0/24user            = rootserver          = /usr/sbin/swatlog_on_failure  += USERIDdisable         = yes  //改为 no
}

重启xinetd服务

# service xinetd restart 

测试:

浏览器输入: 192.168.1.104:901

练习:建立samba共享,共享目录为/data,要求:

(1)共享名为shared,工作组为alen

(2) 添加组为develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组,密码均为用户名

(3) 添加samba用户gentoo,centos和ubuntu,密码均为”alen“

(4) 此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问

(5) 此samba共享服务仅允许来自192.168.1.0/24网络的主机访问

服务端安装samba服务:# yum install samba  # cd /etc/samba  # vim smb.conf    修改工作组: workgroup = alen           hosts allow = 192.168.1.0/24添加组及用户:  # groupadd develop  # useradd ubuntu  # useradd -G develop gentoo  # useradd -G develop centos  # echo "gentoo" | passwd --stdin gentoo  # echo "centos" | passwd --stdin centos  # echo "ubuntu" | passwd --atdin ubuntu添加系统用户为samba用户:  # smbpasswd -a gentoo; 密码为alen  # smbpasswd -a centos; 密码为alen  # smbpasswd -a ubuntu; 密码为alen添加共享配置段:  [shared]    comment = shared file    path = /data    guest ok = yes    write list = +develop测试语法:   # testparmdevelop组对共享目录添加写权限:  # mkdir /data    # setfacl -m g:develop:rwx /data客户端访问:  # smbclient //192.168.1.103/shared -U centos  

转载于:https://www.cnblogs.com/ckh2014/p/10806027.html

网络共享服务(三)之SAMBA相关推荐

  1. 安装 Samba 网络共享服务, 可以通过网络访问我们指定的文件夹

    samba 是一种网络共享服务, 可以通过网络访问我们指定的文件夹. 做嵌入式开发, 大部分的时间都是在写代码或者修改代码, 这个过程我们一般是在 windows 上进行的, 然后把我们改好的代码放到 ...

  2. 网络共享服务(一)之FTP

    网络共享服务:ftp,nfs,samba比较 从跨平台角度说, samba, ftp差不多, 而nfs不支持windows平台 从挂载角度说, samba, nfs可以把远程目录挂载到本地目录上, 对 ...

  3. win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法

    Windows Media Player是一款Windows自带的媒体播放器,可以播放一些本地视频,不过有些windows8系统用户发现Windows Media Player有可在网络上共享媒体的功 ...

  4. win8 windows media player 服务器运行失败,Win8如何关闭Windows Media Player网络共享服务?...

    最近有Win8用户反映,由于电脑内存日渐饱和,导致运行速度越来越卡,听人说Windows Media Player网络共享服务占用挺大一部分的内存,所以想将其关闭,但又苦于不知如何关闭.那么,Win8 ...

  5. Linux网络实战(三)- Samba服务器搭建

    第1关:安装Samba服务软件 任务描述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 本关任务:我们学会如何在Linux系统上搭建一个Samba服 ...

  6. 网络共享服务Samba和NFS配置

    samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议.SMB协议通常是被windows系列用来实现磁盘和 ...

  7. Samba网络文件共享服务介绍

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

  8. Linux系统应用 Centos7共享服务samba设置

    目录 实验:学会Centos7共享服务samba设置 实验目的:通过设置Samba服务器,您可以在CentOS 7上创建一个共享文件夹,并授予其他计算机或设备访问权限,以实现文件共享的目的. 实验步骤 ...

  9. ii 第七单元 访问网络共享文件系统

    挂载网络文件系统 网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统 , 而不是由块设备 ( 例如硬盘驱动器 ) 提供的.客户端通过特殊的文件系统协议和格式访问远程存储 Linux ...

最新文章

  1. 用Eclipse开发JavaWeb项目:错误信息 javax.servlet.http.HttpServlet was not found on the Java Build Path...
  2. jQuery Object 和 HTML Element间的转换
  3. 如何解决Android SDK无法下载Package的问题(.net)
  4. Taro+react开发(88):taro条件渲染
  5. 我的内容管理系统(CMS)寻找历程 -- Mambo出鞘,谁与争锋?
  6. 第2章 转动眼珠的圆脸(《Python趣味创意编程》教学视频)
  7. 机器学习项目完整案例:预测区域的房价中位数
  8. python jupyter notebook 上传文件_使用jupyter notebook将文件保存为Markdown,HTML等文件格式...
  9. 操作系统与操作系统内核
  10. html 游戏 消消乐,html5叠房子消消乐小游戏代码
  11. 数据治理之元数据管理实践
  12. Redhat 9.0之xtt+xft2,可显示粗斜体美化总结(第二版)
  13. 看漫画学焊接!5分钟教你电烙铁的焊接方法
  14. 斯巴达手杖Skytail(加密)
  15. Web前端大作业 体育主题足球网页制作 足球梅西HTML网页设计制作 dreamweaver学生网页源代码
  16. 设计模式-备忘录模式(Memento)
  17. Python 中的“多维”字典 (multi-dimension dictionary)
  18. Mac下matplotlib中文乱码
  19. 仙境传说-按键精灵脚步研究
  20. 高质量毕业答辩PPT模板+PPT网站

热门文章

  1. alloc 和 init都做了什么验证。
  2. equals方法和==的区别--用实例简单说明
  3. 在django中使用django_debug_toolbar
  4. python 函数部分
  5. [51nod]1284 2 3 5 7的倍数(容斥原理)
  6. Java程序设计专题
  7. Python学习(四)数据结构 —— set frozenset
  8. spring执行定时任务
  9. mvc tips:在模板页中使用javascript
  10. Maven pom.xml 全配置(一)常用配置