问题导向:

假如企业有ABC三台服务器,用户a的信息,在存储在a服务器里,但是当出现一些不可抗拒因素,使得A服务器坏了,那么a用户信息的丢失所造成的损失,应该由谁来但呢?

此时则,引入存储分离的概念:

简单来说,就是,创建一个大的存储设备,将各个服务器存储的用户信息,都放在里边,如果,对应信息的对应服务器坏掉了,其他的服务器还可以讲数据取出。以此来解决,数据的安全性问题。

而cifs和nfs就是采用这个思想所产生的系统。

存储分离数据的存储与服务器相分离

一、cifs文件系统

      SMB和CIFS:

SMB(Server Message Block)

又称CIFS(Common Internet File System),一种应用层网络传输协议(微软(Microsoft)和英特尔(Intel)在1987年制定的协议),由微软开发,主要功能是使网络上 的机器能够共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的进程间通讯技能。它主要用在Windows的机器上。

CIFS

       是由microsoft在SMB的基础上发展,扩展到Internet上的协议。他和具体的OS无关, 在unix上安装samba后可使用CIFS.它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。 
CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一 样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

该服务的端口号为:139和445

安装完毕系统后用:netstat -antlupe | grep smb查看

访问网络共享的三个基本步骤:
1. 识别要访问的远程共享
2. 确定挂载点(应该将共享目录挂载到的位置),并创建挂载点的空目录
3. 通过相关的命令或者配置更改挂载的网络文件系统

实验前提,服务的搭建:

该服务分为两部分:存储服务器端,客户端。

客户端IP:172.25.254.123

服务端IP:172.25.254.223

步骤:

存储服务端:

步骤如下:

  • 安装:需要安装三个软件
yum install samba-client.x86_64 samba-common.x86 samba.x86_64 -y客户端、               命令、             服务器samba 这个软件主要提供SMB服务器所需要的各项服务程序
samba-common 主要提供服务器和客户端都会用到的一些数据,以及有关命令等。

  • 开启服务(systemctl  start  smb),查看端口号检查smb服务端口是否开启:netstat -antulpe | grep smb

端口:  139和445

  • 火墙允许smb服务,selinux允许服务(关闭selinux,或者更改selinux状态为警告模式 setenforce 0)

firewall-cmd --list-all                                                         查看火墙是否允许smb服务
          firewall-cmd --permanent --add-service=samba              添加samba服务
          firewall-cmd --permanent --add-service=samba-client     添加samba-client服务
          firewall-cmd --reload                                                        重新加载火墙

  • pdbedit -L                           查看smb服务用户,此时还没有。

  • 将指定用户家目录添加到文件共享服务中(这里的用户必须为本地用户)
    useradd yun                        创建用户
    smbpasswd -a yun               将用户“yun”用户家目录添加到文件共享,并设置密码。

useradd zhai

smbpasswd -a zhai

westos用户本身不存在,则添加失败

  • pdbedit -L                            再次查看smb服务用户,此时已经显示有用户家目录

               pdbedit -L                                    ##显示开启了共享文件服务的本地用户
               pdbedit -x user                       ##删除开启了共享文件服务的用户

客户端:

配置步骤如下:

  • yum install samba-client -y        安装smb客户端
  • yum list  samba-client        检查是否安装成功

windows测试方式
运行窗口
\\172.25.254.223\westos
linux测试方式

  • smbclient -L  //172.25.254.223                       匿名登陆服务端,并查看信息
  • smbclient -L  //172.25.254.223 -U yun            用建立的用户查看信息,显示内容
  • smbclient  //172.25.254.223/yun -U yun         以yun身份登陆进入文件系统

用户只能查看自己的共享目录

    注意:此方法进入该共享目录,没有touch命令,所以不能直接给共享目录里创建文件

但是可以用put进行上传,也可以用get从共享目录里进行下载文件。

       上述方法上传文件比较麻烦,下面用挂载的方法,会方便很多,直接在被挂载的目录上操作,客户端就会有效果

挂载实现更多操作(实验前我先在服务端的共享目录里创建了文件)

  • mount //172.25.254.223/yun  /mnt -o username=yun,password=yun,将共享端,挂载到客户端的/mnt目录下
  • df显示挂载
  • cd /mnt     ls可以查看到之前在存储服务器端创建的文件,此时可以直接进行上传,下载。
  • umount /mnt   不操作时,进行卸载就可以

一、smaba的访问控制

服务端:

  • rpm -qc samba-common    #查看smd的配置文件

/etc/logrotate.d/samba

/etc/samba/lmhosts

/etc/samba/smb.conf  服务的主配置文件

/etc/sysconfig/samba

  • vim /etc/samba/smb.conf      进入该文件,修改参数
89    workgroup = linux                 设置域的名字(设置更改完毕之后在客户端登录进行查看)
97    hosts deny = 172.25.254.123       黑名单= 172.25.254。                黑名单以内的主机禁止访问hosts allow = 172.25.254.123      白名单  = 172.25.254                 白名单IP以外的主机可以访问       

此时客户端不能对共享目录进行访问。

二、新建目录的共享

步骤:

服务端:

  • 先开启服务端的selinux
getenforce                   ##查看内核级火墙状态
Permissive                  ##之前设置的是警告模式
setenforce 1                ##设置内核级火墙为强制模式,或者vim /etc/sysconfig/selinux修改完了之后reboot
  • 共享目录的建立,mkdir /share_catalog
  • 然后进smb的配置文件vim /etc/samba/smb.conf添加创建的目录信息:
322    [hello]     ##用户可以看到的共享名称comment = Share Directory      ##用户可以看到的共享描述path = /share_catalog          ##共享目录的绝对路径writalbe = yes                 ##可写    在客户端看到的是[共享]的名称,而实际共享的的目录则是在path里面所设置的       
  • 重启动服务:systemctl restart smb
  • 客户端上:subclient  //172.25.254.223 -U  yun可以看到,刚才新建的hello
  • 此时查看该目录,是有执行权限的
  • ls -ls /share_catalog     展示共享目录的权限

    此时不能查看文件信息

当关闭selinux时,此时可以查看,但是此时安全系数不高

所以就要在selinux开启的状态,修改完安全上下文成功后,给该目录一个755权限,此时其他用户就不能对该共享目录进行操作,此时单独给yun这个用户,对共享目录的操作权限,即可。

步骤如下:

semanage fcontext -a -t samba_share_t '/share_catalog(/.*?)?'  ##更改共享目录的安全上下文  restorecon -RvvF /share_catalog        ##重新加载使其生效   chmod 755 /share_catalog        给共享目录755权限,设置其他用户不能操作setfacl -m u:yun:rwx /share_catalog     给予yun这个用户满权限,让他对目录可以进行操作

这样可以提高安全性。
在客户端:建立的文件,就是认证的用户的。

测试:

smbclient  //172.25.254.223/hello    -U    yun    进行测试查看
mount //172.25.254.142/wuxie  /mnt -o usernama=wuxie,password=root
df
cd /mnt/
ls
rm -rf AA
ls

三、系统目录的共享

存储服务端:

1.修改smb的主配置文件

直接在自己创建的那个目录信息下添加:

    vim /etc/samba/smb.conf[mnt]                             ##共享的系统目录comment =Share Systen mnt directory       ##共享系统目录的描述path= /mnt                          ##共享系统目录的绝对路径writable=yes                        添加用户可写权限(在服务层次上)systemctl restart smb.service  chmod 775 /mntsetfacl -m u:yun:rwx /mnt/        wuxie用户对于mnt目录用rwx的权限

2、此时在客户端进行挂载:

mount //172.25.254.223/mnt /mnt -o username=yun,passwd=yun

selinux开着,所以此时也不可写。

系统目录也可以通过修改安全上下文使得smb服务可以用。

但是系统目录/mnt不是只有smb服务用,如果修改了安全上下文,修改后别的服务用不了,显然是不合理的。

虽然开放权限使得所有人对smb读服务没有任何限制对于系统来说不安全,但没有更好的解决方法.

服务器端:

  • getsebool -a | grep samba        查看samba的系统布尔值
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off      只读是关闭的
samba_export_all_rw --> off          读写是关闭的
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
  • setsebool -P samba_export_all_rw --> on 或 1        永久修改samba布尔读写值为1;-P表示永久修改ia

客户端测试:df察看是否挂载上,没有的话,重新挂载道/mnt下

cd /mnt

touch file

ls

配置文件里的其他参数:

vim /etc/samba/smb.conf

126         map to guest = bad user    将游客用户映射到匿名用户登陆

323         [hello]
324         comment=Share
325         path =/westos
326         writable = yes        全局可写参数,打开之后,默认所有用户可写
328 #       browseable = yes        在使用命令查看时,是否显示目录。默认为yes(显示)。
329 #       guest ok = yes        允许游客用户登陆,和map to guest = bad user共同搭配使用
330 #       valid users = yun        允许那些用户登陆;valid users = +yun或者valid users = @wuxie表示属于yun组的用户都可以登陆
331 #       write list = pao            允许拿些用户可写
332 #       admin users=yun        修改用户yun为hello目录的超级用户,即root用户,在创建文件之后,可以发现,该文件的用户为root,组为yun

四、smb多用户挂载

问题导向:只有root用户通过了认证,而当前切换到student用户时依然可以查看共享文件,这是不合理的。

解决方法:

客户端

1. yum install cifs-utils.x86_64 -y   安装认证插件

2.查看该软件的连机帮助

man mount.cifs

3.创建smb用户的认证文件,也同时为了不泄露密码

vim /root/sbpasswordusername=yunpassword=yun

4.设置文件权限

chmod 600 /root/sbpass ##为了安全,设置认证文件权限为600

5.挂载

mount //172.25.254.223/hello /mnt -o credentials=/root/sbpassword,sec=ntlmssp,multiusercredentials=/root/sbpassword  隐藏密码,告诉密码存放地址
sec=ntlmssp  认证方式
multiuser    多用户认证

检测:切换到student,此时没有权限,无法和擦看

关于用户认证:

cifscreds add -u username  ip         ##添加认证用户cifscreds clear -u username  ip       ##清除指定已认证的用户cifscreds clearall                    ##清除所有认证用户cifscreds update -u username   ip      ##更新认证信息ip为服务端的ip地址   -u username    必须是已经在服务端认证过的用户

系统的存储分离之----cifs文件管理系统相关推荐

  1. 基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点

    基于Web的文件管理系统,支持权限管理.历史版本管理.Office预览/编辑.WPS预览/编辑.在线解压缩.文件分享.文件加密.远程存储.远程文件推送.秒传.断点续传.智能搜索.文件备注.本地自动备份 ...

  2. 一个文件管理系统的软硬件配置清单

    软硬兼施. 近期在弄一个文件管理系统.系统的最大特点,就是文件很多,数据很大,单位以TB计算.客户因为采购服务器需要走流程,时间周期较长,希望要求我们现在就给一个系统运行软硬件配置,好提前申请. 一. ...

  3. CIFS文件存储系统

    #######CFIS文件的存储########### 如果web服务器压力太大,用多台站点为1台服务器分担压力 3台主机 如果每台主机分别存有支付宝帐号注册信息 如果1号主机挂了,应该怎么办? 技术 ...

  4. 文件管理系统_我的文件管理系统

    其实这个我应该第一个拿出来讲的 由于「强迫症」,一方面我需要所有的文件.视频.照片都能安全被保存(不会云盘崩了,不会硬盘坏了读取不了这样),另一方面,空间有限,我也不想一个东西由于分类原因变得不好找, ...

  5. hdfs mv命令_大数据入门:HDFS文件管理系统简介

    Hadoop作为大数据主流的基础架构选择,至今仍然占据着重要的地位,而基于Hadoop的分布式文件系统HDFS,也在大数据存储环节发挥着重要的支撑作用.今天的大数据入门分享,我们就主要来讲讲HDFS分 ...

  6. android文件管理实现所应用到的技术,基于Android的文件管理系统的设计与实现

    摘要: 现如今,移动信息化得到了不断的发展.在手机,掌上电脑等智能终端进行的随时随地的移动化办公方式,越来越得到人们的欢迎.Android是一款应用广泛的操作系统,在大量开发者的努力下,基于Andro ...

  7. 多用户企业文件管理系统源码_固定资产管理系统的细节分析

    固定资产管理系统的细节分析是什么?固定资产管理系统的应用在很多企业中都越来越普遍,固定资产管理系统作为信息化管理系统,能有效延长资产使用寿命.提升资产使用效能.降低资产故障率及残值.降低维护与维修成本 ...

  8. 一文读懂GaussDB(for Mongo)的计算存储分离架构

    #DevRun开发者沙龙# 8月14日20:00-21:00,华为云数据库研发专家GoldenJohn+生态总监花姐姐携手,为您打造专场直播"从小时级到秒级水平扩展,GaussDB(for ...

  9. linux文件管理课程设计,操作系统原理课程设计-Linux文件管理系统的仿真.doc

    操作系统原理课程设计 实践报告 全套设计加扣 3012250582 题 目: Linux文件管理系统的仿真 姓 名: 学 院: 信息科学技术学院 专 业: 计算机科学技术系 班 级: 计科121 是否 ...

最新文章

  1. TODO:Github的使用技巧之同步代码
  2. Rails 4:如何使用带有turbo-links的$(document).ready()
  3. C语言经典例4-某一天是这一年的第几天
  4. 讨论过后而引发对EF 6.x和EF Core查询缓存的思考
  5. Sklearn.metrics评估方法
  6. Redis入门篇(安装与启动)
  7. [渗透测试] DOS攻击
  8. X509证书结构及解析
  9. C++数据结构——栈
  10. 华为手机如何投屏到电脑
  11. ansible模块authorized_key
  12. js任意进制转换(二进制,八进制,十进制...三十六进制)
  13. H5微信公众号关闭页面
  14. SDN多控制器资源池的设计与实现
  15. 使用transition实现图片轮播效果
  16. 计算机ppt总结,计算机基础课件总结.ppt
  17. 【python】字符串string的截取;获取字符串内的一串
  18. MOV AX,DATA MOV DS,AX
  19. fixed:error:0308010C:digital envelope routines::unsupported
  20. 怒了!维基解密开放爆料数据库,内容涉及全是美国“脏事”!

热门文章

  1. 2.1 Git介绍、安装与使用
  2. 在桌面上显示你的每日计划(提醒事项)
  3. Linux的ioctl和fcntl
  4. 如何在vue项目中引入html页面
  5. Hive2.1.0集成Tez 1
  6. 孚能科技登陆科创板,全球电池阵营迎来新格局
  7. 概率论与数理统计---随机事件及其概率(一)
  8. 大型交易系统之高并发
  9. VR产业迎来突破,VR局域网部署怎么实施?
  10. 【PAT(甲级)】1063 Set Similarity(题目意思)