cifs文件系统

CIFS (Common Internet File System)
通用Internet文件系统这里写链接内容
在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。

功能
CIFS 可以使您达到以下功能:
1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
优点
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。
CIFS 是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。
用于Java与DCom通信的开源第三方库J-Interop就是利用CIFS协议实现的。

CIFS和NFS的对比
(1)CIFS面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP;NFS是独立于传输的,可使用TCP或UDP;
(2)NFS缺点之一,是要求client必须安装专用软件;而CIFS集成在OS 内部,无需额外添加软件;
(3)NFS属无状态协议,而CIFS属有状态协议;NFS受故障影响小,可以自恢复交互过程,CIFS不行;从传输效率上看,CIFS优于NFS,没用太多冗余信息传送;
(4)两协议都需要文件格式转换,NFS保留了unix的文件格式特性,如所有人、组等等;CIFS则完全按照win的风格来作。

使用
在实际应用中,当linux需要挂载window上的目录上,大家首先想到的是samba和VM tools等工具,其实cifs是最简单用法,它不需要你安装任何工具,是windows和linux自带功能
samba,基于smb协议并由服务端和客户端组成的开元文件共享软件,实现了linux和windows之间的文件共享。

一.samba的安装启用

若出现错误:
protocol negotiation failed: NT_STATUS_IO_TIME
解决:
edit /etc/hosts and add my IP and my hostaname
1.实验环境:samba服务端(172.25.254.210),客户端(172.25.254.110),配置好yum源。
**服务端:

  yum search samba  ##搜索samba服务安装包

这里写图片描述

   yum install samba samba-common samba-client -y               ##安装这三个软件包
   systemctl start smb.service  #启动samba服务
   systemctl stop firewalld.service  #关闭防火墙

samba的基本配置信息:
端口:139/tcp 139/udp 445/tcp 445/udp
主配置文件:/etc/samba/smb.conf
这里写图片描述

主配主文件基本配置信息

vim /etc/samba/smb.conf
89 workgroup = MYGROUP ## 工作组的设定
90 server string = Samba Server Version %v ##全局共享信息
95 ; hosts allow = 127. 192.168.12. 192.168.13. ## 客户端白名单设置说明信息
可添加hosts deny = 172.25.254.(*) ##设置客户端黑名单
设置主配置文件,设置工作组为WESTOS,全局共享说明hello linux
这里写图片描述

2.客户端设置
安装samba-client

  yum install samba-client.x86_64 -y
  smbclient -L //172.25.254.210 测试

这里写图片描述

二.本地用户的建立及访问

1.在服务端(samba必须是本地用户)

 useradd westos
   useradd lee
   smbpasswd -a westos
   smbpasswd -a lee
   pdbedit -L         列出samba用户
   pdbedit -x lee     删除samba用户

   setsebool -P samba_enable_home_dirs on
 客户端测试
 smbclient -L //172.25.254.109 -U westos
   Enter westos's password: 
   Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Sharename       Type      Comment
    ---------       ----      -------
    IPC$            IPC       IPC Service (Hello World)
    westos          Disk      Home Directories
   Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

这里写图片描述
这里写图片描述
2. 进入服务端家目录

   smbclient //172.25.254.109/westos -U westos

这里写图片描述
服务端进入/home/westos,新建文件westos1~3
这里写图片描述
客户端再次测试
这里写图片描述
samba交互界面无法使用大多数命令,挂载加目录到指定位置即可,samba交互界面可查看能使用的所有命令
这里写图片描述
3.挂载服务端家目录
(使共享文件系统和本机文件系统环境一致,命令通用,在客户端mnt下创建的文件会同步到服务端/home/westos下)

   mount //172.25.254.109/westos /mnt/ -o username=westos,password=westos

进入mnt,可执行多数命令,并且同步到服务端/home/westos/
这里写图片描述
这里写图片描述
这里写图片描述
服务端
这里写图片描述
4. 永久挂载服务端家目录

vim /etc/fstab
//172.25.254.109/westos /mnt/ cifs defaults,username=westos,password=westos 0 0

这里写图片描述
这里写图片描述
完成后客户端操作同步到服务端/home/westos/
客户端
这里写图片描述
服务端
这里写图片描述

三.自定义共享目录

  1. 当目录是用户建立时,安全上下文存在问题,selinux处于enforcing状态,新建目录安全上下文和samba服务目录安全上下文不一致,需要修改新建目录(永久)安全上下文,并刷新及目录下的一切

服务端

mkdir /sambardir
semanage fcontext -a -t samba_share_t '/sambardir(/.*)?'
restorecon -FvvR /sambardir/

这里写图片描述
编辑主配置文件

vim /etc/samba/smb.conf
   [DATA]
   comment = hello world
   path =/sambardir

这里写图片描述
完成后重启服务,
这里写图片描述
确保实验效果可往/sambadir里边新建文件
这里写图片描述
客户端实验:
这里写图片描述
2.当目录是系统目录时(不能修改安全上下文,否则该系统目录对于其他服务可能无法使用,因此需要将权限全部打开)

  setsebool -P samba_export_all_ro on

这里写图片描述

vim /etc/samba/smb.conf
   [SYSTEMDATA]
   common = hello
   path =/mnt

这里写图片描述
这里写图片描述

客户端 测试

  smclient -L //172.25.254.109 -U westos
  smclient //172.25.254.109/DATA -U westos

这里写图片描述
为实验效果服务端/mnt下新建文件1~3
这里写图片描述
客户端再次测试
这里写图片描述
3. 匿名用户登录权限开放

   guest ok =yes            匿名用户可以登录(注意位置局部控制与全局控制)
   map to guest = bad user  匿名用户可以使用guest名称挂载(全局控制)

这里写图片描述
这里写图片描述
实验客户端

smbclient  //172.25.254.210/DATA

这里写图片描述

四.权限控制

1.服务端对于指定目录/ sambadir ,用户可写权限,可读权限,可进入该目录权限

chmod 777 /sambadir

同时该目录安全上下文要求具有写权限

setsebool -P samba_export_all_rw on

这里写图片描述
2.服务端编辑主配置文件,完成后重启smd服务

 vim /etc/samba/smb.conf
   writable =yes          开启写权力

这里写图片描述

客户端测试
这里写图片描述

3.只对特定用户开反复写权限

vim /etc/samba/smb.conf
   writable =no          关闭写权力
   write list =westos     写权力仅仅对westos用户开放

这里写图片描述
完成后重启服务,客户端测试,对于westos用户是可写的,对于lee无法写
这里写图片描述

4.对于特定组赋予写权限

vim /etc/samba/smb.conf
   writable = no          关闭写权力
   write list =+|@westos    写权力对westos组用户开放

这里写图片描述
服务端将lee纳入westos组,客户端测试
服务端:
这里写图片描述
这里写图片描述
客户端测试:
这里写图片描述
同步服务端,查看属性
这里写图片描述
5.设定westos用户为当前共享的root

 vim /etc/samba/smb.conf
   # write list =+westos    写权力对westos组用户开放
     admin users = westos   设定westos用户为当前共享的root

这里写图片描述
客户端测试:1002为westos 所有人为root,
这里写图片描述

6.设定有效用户

vim /etc/samba/smb.conf
     writable =yes          开启写权力
   # write list =+westos    #写权力对westos组用户开放
   #  admin users = westos   #设定westos用户为当前共享的root
   valid users = lee   设定当前共享的有效用户(是否能进去)

这里写图片描述
客户端测试
这里写图片描述

服务端将westos列为有效用户
这里写图片描述
客户端再次测试
这里写图片描述
7.browseable = yes 当前共享是否隐藏

vim /etc/samba/smb.conf
     writable =yes          开启写权力
   # write list =+westos    #写权力对westos组用户开放
   #  admin users = westos   #设定westos用户为当前共享的root
   valid users = lee   设定当前共享的有效用户(是否能进去)
   browseable = yes       当前共享是否隐藏

服务端设置隐藏,客户端查看
这里写图片描述
这里写图片描述
服务端设置不隐藏,客户端查看
这里写图片描述
这里写图片描述

五.samba的多用户挂载

客户端

  yum install cifs-utils -y
   vim /root/sambapasswd
     username=westos
     password=westos

 chmod 600 /root/sambapasswd
mount -o credentials=/root/sambapasswd,sec=ntlmssp,multiuser //172.25.254.210/DATA /mnt
  ## credentials=/root/sambapasswd 挂载时的用户认证
  ## sec=ntlmssp                   支持其他用户认证
  ## multiuser                     其他用户认证方式

客户端测试
测试
   ls /mnt
   su - student
   ls /mnt
   ls: cannot access /mnt: Permission denied
   在student用户下
   cifscreds add -u westos 172.25.254.210
   ls /mnt
   touch /mnt/westos
   可以看到建立/mnt/westos所用到的用户身份为samba用户westos

实验之前:服务端清理环境
这里写图片描述
客户端:
**安装cifs-utils
这里写图片描述
新建认证文件,改权限
这里写图片描述
挂载实验
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值