Linux网络服务之cifs文件系统

时间:2021-02-11 09:04:55

一、cifs文件系统

         CIFS是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议超文本传输协议的一个实现。

  • cifs可以实现的功能
     1.访问服务器本地文件并读写这些文件
     2.与其它用户一起共享一些文件块
     3.在断线时 自动恢复与网络的连接
     4.使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。

二、SMB服务

1.SMB服务的安装

实验环境:reset两台虚拟机,配置网络,yum源

服务端ip:172.25.254.168       客户端ip:172.25.254.169

desktop:hostnamectl set-hostname server.example.com
server: hostnamectl set-hostname client.example.com

在服务端:

yum install samba samba-client samba-common -y
systemctl start smb
systemctl enable smb
systemctl stop firewalld 
systemctl disable firewalld
smbpasswd -a student ##用户必须存在,但时设置密码与主机用户密码无关
smbpasswd -a westos  

Linux网络服务之cifs文件系统

pdbedit -L  ##查看已经存在的smb用户
pdbedit -x student  ##删除smb用户student
Linux网络服务之cifs文件系统

在客户端:

yum install samba-client -y
smbclient -L //172.25.254.168 -U student    
smbclient  //172.25.254.168/student -U student   ##输入密码登陆系统,ls查看文件

Linux网络服务之cifs文件系统

Linux网络服务之cifs文件系统

ps:服务端的selinux必须为disbled或者setsebool samba_enable_home_dirs on 

2.文件的上传

方法一:局限性很大
先在客户端cd 到要上传文件的所在目录

smbclient //172.25.254.168/student -U student
put file     ##上传文件
Linux网络服务之cifs文件系统

方法二:在客户端挂在服务端的共享文件夹的硬盘,挂在后就可以进行多种操作

mount //172.25.254.168/student /mnt -o username=student,password=123

Linux网络服务之cifs文件系统

方法一:

vim /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

方法二:

vim /etc/fstab    ##若服务端未启动则会导致无法开机

3.smb的基本配置

服务端:
rpm -qc samba-common      ##查看smb的配置文件名
vim /etc/samba/smb.conf   ##修改组信息
syetmctl restart smb

Linux网络服务之cifs文件系统

Linux网络服务之cifs文件系统

客户端:

Linux网络服务之cifs文件系统

服务端:

vim /etc/samba/smb.conf   ##添加白名单,黑名单和白名单相同,将allow改为deny就可以
syetmctl restart smb

Linux网络服务之cifs文件系统

客户端:

Linux网络服务之cifs文件系统

Linux网络服务之cifs文件系统

4.对于指定目录的共享

  • 自己新建的目录
vim /etc/samba/smb.conf 

Linux网络服务之cifs文件系统

semanage fcontext -a -t samba_share_t '/westos(/.*)?'    ##前提为selinux是enforcing,此时才需要修改安全上下文

Linux网络服务之cifs文件系统

客户端:

smbclient //172.25.254.117/DIR -U student

Linux网络服务之cifs文件系统

  • 系统自带目录
vim /etc/samba/smb.conf
systemctl restart smb
Linux网络服务之cifs文件系统
sytemctl restart smb
setsebool samba_export_all on
Linux网络服务之cifs文件系统

客户端:

Linux网络服务之cifs文件系统


  • 对于[DIR]参数的更改
browseable=yes|no               ##是否可以看到,若改为no
smbclient -L //172.25.254.117   ##登陆后看不到DIR
writable=yes|no                 ##是否可写
write list=student              ##需要注释writable那一项才会生效,只有student登陆才可写
write list=@student             ##student组的用户可写,@可以换为+ 
usermod -G student westos       ##给westos用户添加一个附加组student
admin users=student             ##需要注释write list=@student,把writable=yes的注释去掉,让生效

5.多用户安全挂载(只对认证过的用户可看)

客户端:

yum install cifs-utils -y  ##认证工具
man mount.cifs             ##查看工具使用
vim /root/smbpass          ##添加登陆用户和密码

Linux网络服务之cifs文件系统

mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser  //172.25.254.168/mnt  /mnt
cd /mnt 
ls

Linux网络服务之cifs文件系统

cifscreds add -u student 172.25.254.117     ##在westos用户下重新认证

Linux网络服务之cifs文件系统


6.匿名用户的查看

服务端:

vim /etc/samba/smb.conf
systemctl restart smb

Linux网络服务之cifs文件系统

Linux网络服务之cifs文件系统

客户端:

smbclient //172.25.254.117/DIR

Linux网络服务之cifs文件系统

mount //172.25.254.117/DIR /mnt  -o  username=guest,password=""   ##""表示密码为空