前面说到了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. java架构之路-(netty专题)netty的编解码(出入战)与粘包拆包

    上次回归: 上次博客我们主要说了netty的基本使用,都是一些固定的模式去写的,我们只需要关注我们的拦截器怎么去写就可以了,然后我们用我们的基础示例,改造了一个简单的聊天室程序,可以看到内部加了一个S ...

  2. bootstrap 按钮组件

    按钮组件主要的类名: .btn-toolbar     把几个  .btn-group 组合在一起,更复杂的组件 .btn-group .btn-group-vertical   垂直堆叠显示    ...

  3. shellcode 反汇编,模拟运行以及调试方法

    onlinedisassembler https://onlinedisassembler.com 在线反汇编工具,类似于lda.功能比较单一. Any.run 等平台在线分析 将shellcode保 ...

  4. 如何在git搭建自己博客

    1.安装Node.js和配置好Node.js环境,打开cmd命令行输入:node v.2.安装Git和配置好Git环境,打开cmd命令行输入:git --version.3.Github账户注册和新建 ...

  5. Yandex Big Data Essentials Week1 Scaling Distributed File System

    GFS Key Components components failures are a norm even space utilisation write-once-read-many GFS an ...

  6. idea快速创建一个类 实现一个接口

    一 创建一个接口类 二  点击接口名称 按alt + ent 三 选择implement interface 选项 完美!!!!!!!

  7. 11-HTTP请求协议

    今日知识 1. http 2. Tomcat使用 3. 知识总结 HTTP 1. 概念:Hyper Text Transfer Protocol * 传输协议:定义了,客户端和服务器通信时,发送的数据 ...

  8. 在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据

    百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示: http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路 ...

  9. yum安装logstash 不生效

    问题描述 根据logstash的配置方法写了一个配置文件,并放入/etc/logstash/conf.d/目录下,然后我们运行logstash # service logstash start Log ...

  10. 解决intellij idea新建maven项目,加载archetype慢的问题

    File->settings   在VM Options内输入 -DarchetypeCatalog=internal 重启idea