前面说到了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. 登录sql sever

    MSSQLSEVER是默认的实例名,一台计算机可以安装多个实例名,相当于多个服务器,互不影响. workbench是MySQL 服务器的一个图形化管理客户端,功能类似于MySQL Command 安装 ...

  2. yukongDSRM账户安全防护

    一.DSRM简介 1.DSRM(Diretcory Service Restore Mode,目录服务恢复模式)是windows域环境中域控制器的安全模式启动选项.域控制器的本地管理员账户也就是DSR ...

  3. 《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第二节:画矩形

    有了上一节画线的基础,画矩形的各种边线就特别好理解了,所以,本节在矩形边线上,就不做过多的讲解了,关注一下画“随机矩形”的具体实现就好.与画线相比较,画矩形稍微复杂的一点就是在于它多了很多填充的样式. ...

  4. php 对象示例

    <?php header("content-type:text/html; charset=utf-8"); error_reporting(E_ALL); class My ...

  5. Iperf 网络性能测试

    1.iperf安装 1.1将iperf_PC.rar工具解压放在默认的盘目录下即可,无需安装 1.2安装iperf for android 2.06.apk"到手机端. adb instal ...

  6. vue插件介绍

    1.插件和组件的关系 在没有封装组件之前,如果不使用第三方插件,那么很多情况下我们会编写几个常用的组件来提供给页面使用,如Alert/Loading组件,而你可能需要在很多页面中引入并且通过compo ...

  7. python之基础中的基础(二)

    1.字典 创建字典,alien_0={'color':'green','points':5}其中由一个又一个的“键-值”对组成. 访问键-值对相应的值,print(alien_0['color']), ...

  8. java设计模式4——原型模式

    java设计模式4--原型模式 1.写在前面 本节内容与C++语言的复制构造函数.浅拷贝.深拷贝极为相似,因此建议学习者可以先了解C++的该部分的相关知识,或者学习完本节内容后,也去了解C++的相应内 ...

  9. Android事件分发与责任链模式

    一.责任链模式 责任链模式是一种行为模式,为请求创建一个接收者的对象链.这样就避免,一个请求链接多个接收者的情况.进行外部解耦.类似于单向链表结构. 优点: 1. 降低耦合度.它将请求的发送者和接收者 ...

  10. 正规表达式与有限自动机和LEX

    正规式与有限自动机的等价性 一个正规式r与一个有限自动机M等价, L(r)=L(M) FA ->正规式,对任何FA M,都存在一个正规式r,使得L(r)=L(M). 正规式 -> FA, ...