1.CIFS文件系统简介
CIFS(Common Internet File System):通用网络文件系统 ;作用:在windows主机之间进行网络文件共享。
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS 可以达到以下功能:
<1>访问服务器本地文件并读写这些文件
<2>与其它用户一起共享一些文件块
<3>在断线时自动恢复与网络的连接
<4>使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
优点
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。
CIFS 是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。
用于Java与DCom通信的开源第三方库J-Interop就是利用CIFS协议实现的。
2.共享个人目录
1)在开始之前我们需要了解一个软件——Smaba
Samba(Server Messages Block )是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
2)环境搭建
yum install samba samba-client samba-common -y ##注意系统版本与yum源版本一致
systemctl stop firewalld.service
systemctl status smb.service ##打开服务
3)建立共享目录
4)建立SMB用户并设置密码
注意:smb用户与本机用户并不冲突,且smb用户必须是本机用户
useradd smbtest
smbpasswd -a smbtest
pdbedit -L ##查看smb用户
5)编辑配置文件
[redhat7.0] ##共享名称
comment = redhat ##共享说明
path = /redhat ##共享目录路径
重启服务
systemctl restart smb.service
6)测试
smbclient -L //172.25.6.106 -U smbtest
smbclient //172.25.6.106/redhat7.0 -U smbtest
注意:如果查看共享目录列表是出现下面情况,尝试修改共享目录的安全上下文
semanage fcontext -a -t samba_share_t '/redhat(/.*)?'
restorecon -FvvR /redhat
7)smb用户的添加与删除
useradd 用户名
useradd -M 用户名 ##建立用户但不建立用户家目录
smbpasswd -a 用户名 ##为smb用户添加密码
pdbedit -x 用户名 ##用户删除
pdbedit -L ##查看smb用户列表
3.共享系统目录——以/mnt为例
共享系统目录时要修改Linux属性,权限一旦开放,系统将不对系统目录进行保护(这种影响是针对所有系统目录的)
1)修改配置文件
vim /etc/samba/smb.conf
systemctl restart smb.service
2)修改SElinux的属性
setsebool -P samba_export_all_rw on ##可读写
setsebool -P samba_export_all_ro on ##只读
3)测试
smbclient //172.25.6.106/mnt -U smbtest
4.samba的匿名访问
vim /etc/samba/smb.conf
systemctl restart smb.service
mount //172.25.6.106/redhat7.0 /westos -o username=guest
测试:
在客户端安装samba软件,并登陆服务端主机共享的文件系统
smbclient //172.25.6.106/redhat7.0 (可以不用密码)
5.实名共享
在服务端(共享端)配置:
vim /etc/samba/smb.conf ##只允许IP为172.25.6.206的主机访问
systemctl restart smb.service
在客户端测试:
mount //172.25.6.106/redhat7.0 /mnt -o username=smbtest,password=123
在172.25.6.106上进行挂载——挂载失败
修改文件后再挂载——挂载成功
注意:
hosts deny为挂载黑名单
hosts allow为挂载白名单
6.挂载方式
挂载方式和一般挂载相同
永久挂载:
1)
vim /etc/fstab
//172.25.6.106/redhat7.0 /westos cifs defaults,username=smbtest,password=123 0 0
mount -a ##使挂载策略生效
2)
vim /etc/rc.d/rc.local
mount //172.25.6.106/redhat7.0 /westos -o username=smbtest,password=123
chmod +x /etc/rc.d/rc.local
7.samba共享目录的相关管理参数
vim /etc/samba/smb.conf
[redhat7.0] ##共享名称
comment = redhat ##共享说明
path = /redhat ##共享途径
guest ok = yes ##允许匿名访问
writable = yes ##允许可写
write list = +student ##允许可写名单(student这个组,+和@意思相同)
valid users = student
valid users = @student
browseable = yes ##查询时显示这个DIR目录
admin users = student ##登陆获得student身份
systemctl restart smb
8.多用户挂载
yum install cifs-utils.x86_64 -y ##在客户端上管理的软件是cifs-utils
vim /root/passfile ##写入smb服务上真实存在的用户和密码
username=smbtest
password=123
mount //172.25.6.106/redhat7.0 /mnt -o credentials=/root/passfile,multiuser,sec=ntlmssp
##挂载多用户(credentials=/root/passfile指定挂载时用到的用户身份,sec=ntlmssp认证方式为smb认证,multiuser支持多用户认证)
useradd tom
su - tom
cifscreds add -u smbtest 172.25.6.106 ##增加samba用户
cifscreds clear -u smbtest 172.25.6.106 ##清除samba用户