LINUX---cifs文件系统

cifs文件系统

##1.cifs简介##
1)定义
cifs是通用Internet文件系统
在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。

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

3)优点
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。
CIFS 是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。
用于Java与DCom通信的开源第三方库J-Interop就是利用CIFS协议实现的。

##2.SMB文件共享##

在window和linux之间进行共享就会用到SMB文件共享,Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件的共享目录进行共享,并将Linux打印机作为CIFS/SMB打印机的共享进行共享。
下面我们测试的是将linux文档共享给另一端的linux系统,但实际中,SMB几乎都用于windows和linux的文件共享。

1)配置服务
yum install samba samba-client samba-common -y ##安装服务
这里写图片描述
systenctl start smb ##开启smb文件共享服务
这里写图片描述
vim /etc/hosts
172.25.254.156 hostname ##进行本地解析
这里写图片描述
这里写图片描述
2)共享资源
smbclient -L //172.25.254.156 ##匿名用户登陆,列出共享内容
这里写图片描述
smbpasswd -a username ##添加smb用户,user必须是本地用户
这里写图片描述
pdbedit -L ##列出smb用户
这里写图片描述
pdbedit -x username ##撤销smb用户
这里写图片描述
smbclient //172.25.254.156/student -U student ##student用户访问student目录下的共享内容
这里写图片描述
!ls ##列出此目录下的文件及目录
ls ##列出smb用户的共享文件
put ##只能上传相对路径下的文件
mount //172.25.254.156/student /mnt -o username=student,password=123 ##挂载 这里写图片描述
vim /etc/fstab ##永久挂载

//172.25.254.156/student /mnt cifs username=student,password=123 0 0

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

##3.在selinux服务为强制状态时,共享文件##

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

1)配置实验环境
vim /etc/sysconfig/selinux ##配置selinux为enforcing
这里写图片描述
reboot ##重启让selinux生效
这里写图片描述

2)对于自己建立的目录:
mkdir westos ##建立自己的目录
touch westos/westosfile ##在目录下建立文件
vim /etc/samba/smb.conf ##编辑配置文件

[linux]
comment = dir from westos ##目录来自westos
path = /westos

这里写图片描述
这里写图片描述
systemctl restart smb ##重启smb服务
这里写图片描述
smbclient //172.25.254.156/linux -U student ##student用户登陆访问linux文件
ls ##访问不到
这里写图片描述
1. getsebool -a | grep samba ##显示samba的权限
这里写图片描述
setsebool -P samba_create_home_dirs on ##设定在smb服务中创建目录打开
setsebool -P samba_enable_home_dirs on ##设定在smb服务中目录运行打开
这里写图片描述
2.修改安全上下文
semanage fcontext -a -t samba_share_t ‘/westos(/.*)?’
restorecon -RvvF /westos/
这里写图片描述
3. smbclient //172.25.254.156/linux -U student
ls ##可以访问
这里写图片描述

2)对于系统目录:
vim /etc/samba/smb.conf

[mnt]

comment = dir from /mnt

path = /mnt

这里写图片描述
这里写图片描述
systemctl restart smb ##重启smb服务
这里写图片描述
要想访问要进行如下操作:
setsebool -P samba_export_all_ro on ##此权限较大,会覆盖修改的安全上下文
这里写图片描述
smbclient //172.25.254.156/mnt -U student
ls ##可以访问/mnt下的文件
这里写图片描述

##4.限制共享##

1)vim /etc/samba/smb.conf ##编辑文件,设定限制
这里写图片描述
这里写图片描述
这里写图片描述
vaild users = westos ##允许westos访问共享文件
vaild users = @westos/+westos ##允许属于westos组的用户访问共享文件
writeable = yes ##允许用户可写
write list = student ##可写名单,允许student可写
guest ok = yes ##匿名用户可以访问
map to guest = bad user ##没有用户身份的就是匿名用户,对匿名用户的定义
browable = no ##匿名用户不可以列出共享文件
admin users = westos ##设定westos为超级用户
2)systemctl restart smb ##重新开启smb服务,让设定生效
这里写图片描述

##5.用户挂载##

1)单个用户挂载:
mount //172.25.254.156/linux /mnt -o username=student,password=123 ##挂载
这里写图片描述
在这样的挂载方式下,在此目录下建立的文件都属于student,而且其他用户也可以访问student的挂载
这里写图片描述

2)多用户挂载:
在客户端认证访问共享文件
1.yum install cifs-utils -y ##安装cifs文件系统
这里写图片描述
2.vim /root/smbauth ##指定本次挂载的验证用户及其密码

username=student

password=123

这里写图片描述
这里写图片描述
3. mount //172.25.254.156/linux /mnt -o multiuser,credentials=/root/smbauth,sec=ntlmssp
这里写图片描述
multiuser ##多用户挂载
creddenials=/root/smbauth ##本次挂载认证的文件
sec=ntlmssp ##认证方式
4.在/mnt下建立的文件属于认证挂载的用户
这里写图片描述
虽然文件所有者显示的是kiosk,但是文件的真正所有id是student的id,因为挂载时的用户是student
这里写图片描述
5.其他用户不能访问挂载在/mnt下的文件
这里写图片描述
其他用户若要访问则要创建新的认证用户
cifscreds add -u westos 172.25.254.156
这里写图片描述
在/mnt下所建的目录属于挂载认证的用户westos
这里写图片描述

3)采用多用户挂载的方式,只有通过验证的用户可以访问共享文件,提高了安全性

猜你喜欢

转载自blog.csdn.net/qq_42736288/article/details/81661928