前面说到了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上的nfs
  NetBIOS: 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/samba
guest ok = yes
writable = 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 /etc
smb:\> 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 = stream
wait = no
only_from = 127.0.0.1  //这里改为192.168.1.0/24
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes  //改为 no
}

重启xinetd服务

# service xinetd restart 

测试:

浏览器输入: 192.168.1.104:

练习:建立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
测试语法:
  # testparm
develop组对共享目录添加写权限:
  # mkdir /data
# setfacl -m g:develop:rwx /data
客户端访问:
  # smbclient //192.168.1.103/shared -U centos  

网络共享服务(三)之SAMBA的更多相关文章

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

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

  2. 网络共享服务(二)之NFS

    NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发.通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源.但是,NF ...

  3. 网络共享服务—SAMBA服务

    SAMBA服务简介 SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议 Cifs:common internet file system,微软基于S ...

  4. Linux网络共享管理(ssh,nfs,samba)

    OpenSSH服务器: ssh协议:提供安全的ssh环境用于远程管理,默认端口:22: 服务名称:sshd openssh-server包的安装文件: 使用ssh客户端程序: 连接目标主机: ssh ...

  5. nfs网络共享服务基础

    nfs原理 1.开启RPC服务 2.NFS向RPC服务注册启动的端口 3.用户向RPC询问NFS服务的端口 4.RPC返回端口给客户端 5.客户端通过获得的端口与NFS服务器进行数据传输 实验步骤 一 ...

  6. NFS网络共享服务 挂载参数及优化 内核优化建议

    配置NFS服务端 nfs01上安装软件 [root@nfs01 ~]# yum install nfs-utils rpcbind -y nfs-utils:NFS服务的主程序,包括rpc.nfsd. ...

  7. NFS网络共享服务部署

    10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...

  8. win7老是弹出“Windows Media PIayer网络共享服务配置应用程序 已停止工作”

    应是优化软件的时候把服务禁止启动了. 我的电脑 > 管理 > 服务和应用程序 > 服务 Windows Media Player Network Sharing Service 启动 ...

  9. Linux实战教学笔记22:企业级NFS网络文件共享服务

    目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...

随机推荐

  1. 牛客练习赛52 C 烹饪(容斥+扩展欧几里得)

    来源:https://ac.nowcoder.com/acm/contest/1084/D 思路来源:https://www.cnblogs.com/Morning-Glory/p/11521114. ...

  2. OpenCV实现图像变换(python)

    一般对图像的变化操作有放大.缩小.旋转等,统称为几何变换,对一个图像的图像变换主要有两大步骤,一是实现空间坐标的转换,就是使图像从初始位置到终止位置的移动.二是使用一个插值的算法完成输出图像的每个像素 ...

  3. why NW NMM backup sqlserver failed and how to solve it

    A NW NMM backup sqlserver failed. wow , I realze that maybe I put too many database backup together ...

  4. OpenCV3入门(八)图像边缘检测

    1.边缘检测基础 图像的边缘是图像的基本特征,边缘点是灰度阶跃变化的像素点,即灰度值的导数较大或极大的地方,边缘检测是图像识别的第一步.用图像的一阶微分和二阶微分来增强图像的灰度跳变,而边缘也就是灰度 ...

  5. Linux学习1-云服务器上搭建禅道项目管理工具

    前言 相信各位测试的小伙伴出去面试总会被问到:测试环境怎么搭建?一个中级测试工程师还是对测试环境一无所知的话,面试官会一脸鄙视的,今天我给大家介绍一下最简单的环境部署-—如何在云服务器部署禅道环境. ...

  6. 《Head first设计模式》之策略模式

    策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 假设有一个模拟鸭子的游戏,游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫.这个游戏的内部设计了一个 ...

  7. onboard procossor and cross-compile

    星载处理器 ERC32-TSC695F The European Space Agency’s ERC32 is a microprocessor implementing a SPARC V7 pr ...

  8. linux使用和基础操作

    1.linux系统初使用 linux有图形终端和字符终端,关于linux学习以字符终端为主,即命令行操作: [root@centos7 ~]#runlevel 查看当前工作模式N 3 //3为字符终端 ...

  9. SQL Server 2019 安装教程

    SQL Server 2019 安装教程 下载安装SQL: 1.下载SQL Server 2019 Developer 官方网址:下载地址. 2.下拉选择免费版本,直接点击下载(别问,问就是家境贫寒

  10. 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)

    电子邮件服务器,对于很多公司,都是需要的. 虽然现在很多人,使用 QQ .微信进行一对一的工作沟通,使用QQ 群.微信群进行多人沟通,但这些即时聊天工具,与电子邮件相比,仍有很多不足: a. 电子邮件 ...