前面说到了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. windows本地安装以及使用Jenkins

    首先保证本地已安装JDK,Jenkins是需要Java开发的,需要JDK运行环境,此处不提供,网上一大把. 一.Jenkin安装: 下载Jekins,到官网下载,https://jenkins.io/ ...

  2. Hapi+MySql项目实战数据库操作(四)

    数据库访问 下面以Node的ORM框架Sequelize来操作数据库,Mysql为例. 配置数据库连接信息config/db_config.js: //db_config.js module.expo ...

  3. pt-query-digest 慢日志监控

    一.安装percona-toolkit,以centos为例 yum -y install https://repo.percona.com/yum/percona-release-latest.noa ...

  4. light oj 1102 - Problem Makes Problem组合数学(隔板法)

    1102 - Problem Makes Problem As I am fond of making easier problems, I discovered a problem. Actuall ...

  5. 在React中使用WebUploader实现大文件分片上传的踩坑日记!

    前段时间公司项目有个大文件分片上传的需求,项目是用React写的,大文件分片上传这个功能使用了WebUploader这个组件. 具体交互是: 1. 点击上传文件button后出现弹窗,弹窗内有选择文件 ...

  6. Java synchronized 关键字详解

    Java synchronized 关键字详解 前置技能点 进程和线程的概念 线程创建方式 线程的状态状态转换 线程安全的概念 synchronized 关键字的几种用法 修饰非静态成员方法 sync ...

  7. css—动画(transform, transition, animation)

    transform 静态属性,一旦写进style里面,会立即显示作用,无任何变化过程.(类似于left, right, top, bottom这类属性) 主要用来做元素的变形 改变元素样式的属性主要有 ...

  8. Python实现进度条的4种方式

    这里只列举了部分方法,其他方法或python库暂时还没使用到 马蜂窝刷粉丝[微信:156150954] 1.不用库,直接打印: 代码样例: import time #demo1 def process ...

  9. centos5,6 系统启动流程

    linux内核特点: 支持模块化:模块文件的名字以.ko(kernel object)结尾 支持内核运行时,动态加载和卸载模块文件. linux内核组成部分: 核心文件:/boot/vmlinuz-V ...

  10. [TJOI2014] 匹配

    注:此题无序,也无嵬 正文 我们这题求得事实上是一个最大费用最大流,最后的对每条边进行枚举,额然后,如果最大费用小了,就计入答案.. 算是,比较水吧 还有,一开始WA了两次是因为,dis应初始化为负无 ...