Linux系统中CIFS文件存储以及SMB应用

1、cifs 以及 smb
cifs
  • CIFS 是一个协议,它使程序可以访问远程计算机上的文件并要求此计算机提供服务。
  • CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。
  • CIFS是公共的或开放的SMB协议版本。
samba
  • Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
  • SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
  • SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

注意:该实验中,不论是服务端还是客户端的主机名称都必须完整。
在这里插入图片描述
在这里插入图片描述

2、samba客户端设置

yum install samba-client.x86_64 #安装samba客户端即可。

3、samba服务器部署以及应用
1)安装软件以及环境设置

yum install samba samba-client.x86_64 samba-common -y #服务端 客户端 以及常用命令
systemctl start smb #开启服务
systemctl enable smb.service #设置服务开机自动启动
systemctl stop firewalld.service #关闭防火墙
getsebool -a | grep samba #查看selinux 对samba的限制
setsebool -P samba_enable_home_dirs on #打开允许用户访问家目录的开关。
在这里插入图片描述
在这里插入图片描述

2)建立smb用户并允许用户访问SMB服务

smbpasswd -a student #创建smb用户并指定密码 使用的用户必须是系统中存在的用户
pdbedit -L #显示已经存在的smb用户
pdbedit -x toto #删除某一个smb用户
在这里插入图片描述

测试:客户端 使用student用户登陆smb服务 访问student的家目录。
smbclient -L //172.25.47.104/student -U student #查看自己的家目录
在这里插入图片描述
smbclient //172.25.47.104/student -U student #通过smb服务进入student的家目录中
在这里插入图片描述

3)客户端通过smb在用户家目录中上传文件

通过操作在客户端往服务端的student用户的家目录中添加文件。

进入共享家目录后上传文件

[root@client Desktop]# smbclient  //172.25.47.104/student -U student   
Enter student's password:               #进入共享的家目录
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls 
  .                                   D        0  Tue Jan  6 22:37:04 2015
  ..                                  D        0  Mon May  6 08:03:18 2019
  .bash_logout                        H       18  Wed Jan 29 07:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 07:45:18 2014
  .bashrc                             H      231  Wed Jan 29 07:45:18 2014
  .ssh                               DH        0  Tue Jan  6 22:21:35 2015
  .config                            DH        0  Tue Jan  6 22:37:04 2015

		40913 blocks of size 262144. 28588 blocks available
smb: \> put file   #上传客户端的本地文件到服务端的用户家目录中
putting file file as \file (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls            #查看文件
  .                                   D        0  Mon May  6 08:28:42 2019
  ..                                  D        0  Mon May  6 08:03:18 2019
  .bash_logout                        H       18  Wed Jan 29 07:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 07:45:18 2014
  .bashrc                             H      231  Wed Jan 29 07:45:18 2014
  .ssh                               DH        0  Tue Jan  6 22:21:35 2015
  .config                            DH        0  Tue Jan  6 22:37:04 2015
  file                                A        0  Mon May  6 08:28:42 2019        #文件上传成功

		40913 blocks of size 262144. 28581 blocks available
smb: \> 

在这里插入图片描述
使用挂载的方式添加文件:
将服务端的用户家目录通过smb服务挂载到客户端本地目录中,然后进入该目录操作。
mount -o username=student,password=123456 //172.25.47.104/student /opt #进行挂载
在这里插入图片描述

4)修改smb共享的域

smbclient -L //172.25.47.104 #查看共享信息,显示域为MYGROUP
在这里插入图片描述
vim /etc/samba/smb.conf #修改配置文件
在这里插入图片描述

88 #
 89         workgroup = toto    #修改89行的域为toto
 90         server string = Samba Server Version %v

systemctl restart smb #重新启动服务

smbclient -L //172.25.47.104 #再次查看共享信息,显示域已经改变

在这里插入图片描述

5)samba共享目录的建立与设定
  • 添加新的共享目录
    生成目录并设置配置文件
    mkdir /totoshare #新建目录作为共享目录
    vim /etc/samba/smb.conf #修改设置smb配置文件
        [TOTO]
        comment = my toto
        path = /totoshare

在这里插入图片描述
修改新建目录的安全上下文

semanage fcontext -a -t samba_share_t '/totoshare(/.*)?'
restorecon -RvvF  /totoshare/

systemctl restart smb.service #重新启动服务

测试:
smbclient //172.25.47.104/TOTO -U student #使用客户端访问该新建共享目录
在这里插入图片描述

6)SMB黑白名单设置
  • 白名单

vim /etc/samba/smb.conf #编辑配置文件
在这里插入图片描述

  hosts allow = 172.25.47.104    #设置白名单,这里也可以直接对一个网段进行限制

systemctl restart smb #重新启动服务
测试:172.25.47.104 主机访问共享目录,可以正常访问
在这里插入图片描述
172.25.47.204 主机访问共享目录,被拒绝!
在这里插入图片描述

  • 黑名单
    vim /etc/samba/smb.conf #编辑配置文件
    在这里插入图片描述
hosts deny = 172.25.47.104    #设置黑名单,这里也可以直接对一个网段进行限制

systemctl restart smb #重新启动服务
测试:172.25.47.104 主机访问共享目录,被拒绝!
在这里插入图片描述
172.25.47.204 主机访问共享目录,可以正常访问
在这里插入图片描述

7)samba匿名访问

vim /etc/samba/smb.conf #编辑配置文件
在这里插入图片描述
在这里插入图片描述
systemctl restart smb #重新启动服务
测试:使用匿名登陆访问共享目录
mount -o username=guest //172.25.47.104/TOTO /opt #使用匿名用户挂载共享目录
在这里插入图片描述

8)samba共享目录的权限参数设定
writable = yes					        ##打开写权限
write list = +student/@student		    ##对student组可写
write list = student 	                ##对student、redhat用户可写
valid users = student			        ##student可以挂载目录
valid users = +student/@student			##student组可以挂载目录
browseable = no					        ##是否隐藏,no隐藏,yes不隐藏
admin users = student			        ##共享目录添加管理员

1 设置所有用户对共享目录可写(上传以及删除文件)
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328         writable = yes

chmod 777 /totoshare/ #给共享目录权限
systemctl restart smb #重新启动服务
在这里插入图片描述
测试:使用student用户对共享目录进行挂载,可以进行创建或者删除文件
在这里插入图片描述

2 设置指定用户对共享目录可写(上传以及删除文件)
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328         write list = student

chmod 777 /totoshare/ #给共享目录权限
systemctl restart smb #重新启动服务

测试:
使用指定用户对共享目录进行挂载,可以进行创建或者删除文件
在这里插入图片描述
使用其他用户对共享目录进行挂载,并没有写权限
在这里插入图片描述

3 设置属于某组的用户对共享目录可写(上传以及删除文件)
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328         write list = @student  # +student 同样的效

chmod 777 /totoshare/ #给共享目录权限
systemctl restart smb #重新启动服务

测试:
用户toto不属于student组 没有写权限
在这里插入图片描述
修改用户toto的附加组中存在student组,之后对共享目录存在写权限。
在这里插入图片描述
在这里插入图片描述
4 指定共享目录的有效用户(该用户可以使用该共享目录)
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328        valid users = student

systemctl restart smb #重新启动服务

测试:
使用用户toto无法挂载该共享目录,无法使用
使用用户student可以正常那个挂载使用该目录
在这里插入图片描述

5 指定共享目录的有效用户组(属于改组的用户可以使用该共享目录)
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328        valid users = @student    # +student 同样的效果

systemctl restart smb #重新启动服务
测试:
添加附加组student到用户toto,之后其属于student组,可以正常使用该共享目录
在这里插入图片描述

6 设置隐藏共享目录
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328       browseable = no      #当该值等于no的时候隐藏目录,yes时候不隐藏

systemctl restart smb #重新启动服务

测试:查看共享信息,不显示该共享目录,虽然被隐藏但是不影响该目录的挂载。
在这里插入图片描述
在这里插入图片描述

7 共享目录添加管理员
vim /etc/samba/smb.conf #编辑配置文件

325         [TOTO]
326         comment = my toto
327         path = /totoshare
328      admin users = student   #设置student用户为该共享目录的管理员

systemctl restart smb #重新启动服务

测试:
共享目录中文件的所有者以及所属组与创建该共享目录的用户没有关系,只和使用的是哪一个登陆smb在该共享目录中创建的文件。
但是作为管理员,其所新建的文件所有者为超级用户(root)
在这里插入图片描述
在这里插入图片描述

9)smb多用户挂载
注意:多用户挂载是在客户端进行设置的
  • 多用户挂载主要是用来解决:当客户端使用超级用户对共享目录进行挂载之后,其他用用户同样可以直接使用该挂载目录,存在安全隐患。使用多用户挂载之后,其他用户想访问挂载之后的共享目录时候,必须经过验证。
    在这里插入图片描述

yum install cifs-utils.x86_64 -y #安装软件
vim /root/passfile #建立共享目录认证文件

username=student
password=123456       #文件内容为smb用户以及密码

chmod 600 /root/passfile #给予认证文件权限

mount -o credentials=/root/passfile,multiuser,sec=ntlmssp //172.25.47.104/TOTO /opt

root用户使用认证文件对共享目录进行挂载
测试:超级用户可以正常使用该挂载目录 ,但是普通用户必须经过认证才可以查看共享目录:

[student@client opt]$ cifscreds add -u student 172.25.47.104
Password: 
[student@client opt]$ ls 
file1  file2  file3  file5  lele  tops

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值