一.什么是CIFS
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
二.CIFS 的功能:
1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
三.CIFS 的优点:
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。
CIFS 是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。
用于Java与DCom通信的开源第三方库J-Interop就是利用CIFS协议实现的。
四.区别对比:
CIFS和NFS的对比
(1)CIFS面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP;NFS是独立于传输的,可使用TCP或UDP;
(2)NFS缺点之一,是要求client必须安装专用软件;而CIFS集成在OS 内部,无需额外添加软件;
(3)NFS属无状态协议,而CIFS属有状态协议;NFS受故障影响小,可以自恢复交互过程,CIFS不行;从传输效率上看,CIFS优于NFS,没用太多冗余信息传送;
(4)两协议都需要文件格式转换,NFS保留了unix的文件格式特性,如所有人、组等等;CIFS则完全按照win的风格来作。
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超 过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
服务端:
客户端:
服务端:
查找samba的相关软件
把上述三个软件都下载下来
查看samba的配置文件
开启服务,关闭火墙,打开功能开关
创建共享目录,修改共享目录的安全上下文
修改配置文件,重启服务并添加samba用户
在共享目录下新建文件
客户端:
安装samba-client
查看共享目录名称、类型和说明等信息
匿名用户尝试访问LEE以及westos用户访问LEE
comment | 关于共享目录的说明 |
path | 共享LEE对应服务端的目录 |
browseable | 是否可以对共享文件查看 |
valid user | 只允许某一用户或者某一用户组所有成员登录LEE |
writable | 允许用户对LEE进行编辑 |
write list | 可写用户 |
guest | 匿名用户登陆 |
admin users | 设定LEE目录的超户是谁 |
map to guest = bad user | 把匿名用户影射成guest用户 |
workgroup | 工作组 |
共享目录的说明
服务端:
修改配置文件/etc/samba/smb.conf,重启服务
每次在服务端修改完配置文件都需要重启服务`systemctl restart smb.service`
客户端:
是否可以对共享文件查看
服务端:
客户端:
服务端:
新建samba用户xin和lee
客户端:
设定用户组成员都可以访问共享目录
服务端:
‘+‘或‘@‘westos表示westos所在用户组的所有组成员
客户端:
是否所有人可写
服务端:
服务中允许所有人可写,但是文件系统中并没有赋予该用户写的权利,我们需要设置用户的权限。
客户端:
服务端:
客户端:
设定westos所在用户组的成员都可写
服务端:
保证有一个用户除westos在westos组,方便等会儿在客户端测试
客户端:
允许匿名用户登陆
默认情况下匿名用户不可以查看LEE
服务端:
客户端:
在通常情况下root用户或者lee用户等都可以挂载,但匿名用户不能挂载
允许匿名用户挂载
服务端:
客户端:
设定LEE目录的超户
服务端:
客户端:
服务端:
服务端:
客户端:
客户端:
如何实现多用户分开挂载,避免挂载到一起呢
客户端:
安装cifs-utils.x86_64
查看cifs的帮助
新建一个文件 /root/smbauth 编辑
修改文件的权限
以认证文件方式挂载,不裸露samba用户
再切换到其他用户查看
没有实现多用户挂载功能,只是隐藏了用户身份信息
再查看帮助
重新挂载
如果用户linux要是想看目录下的内容,需要得到一个服务端smb用户的身份才可以
服务端:
客户端:
查看是否能自动挂载