1、相关概念:
CIFS是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS可以使您达到以下功能:
1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用统一码(Unicode)文件名
2、安装smb服务
yuminstall samba-common.x86_64 samba.x86_64 samba-client -y ---安装服务
systemctlstart smb
smbclient-L //172.25.254.239 ---匿名登陆
smbpasswd-a student --- 设置smb用户密码,该用户必须是系统存在的用户
smbclient-L //172.25.254.239/student -U student ---student用户登陆
getsebool-a | grep samba ---查看sebool
setsebool-P samba_enable_home_dirs on ---关闭samba用户访问目录限制
测试:
smbclient //172.25.254.239/student -U student
vim/etc/samba/smb.conf
89workgroup = xxx ---改组名
93hosts allow = 172.25.254.139 ---白名单
94hosts deny = 172.25.254.139 ---黑名单
321[DATA] ---共享文件夹名,名字任意
comment= xxxx data ---数据类型
path= /xxx ---路径
systemctlrestart smb
mkdir /xxx
touch /xxx/file
semanagefcontext -a -t samba_share_t '/xxx(/.*)?'
restorecon -FvvR /xxx/
测试:
vim/etc/samba/smb.conf
125map to guest =bad user ---指定匿名用户身份
324guest ok = yes ---允许匿名用户登陆
systemctlrestart smb
smbclient//172.25.254.100/data
vim/etc/samba/smb.conf
writable=yes ---可写
writelist = student/@student ---studnet用户可写/@student表示student用户组可写
adminusers= admin ---设定管理员用户身份
systemctlrestart smb
测试之前需要作如下设定给与/haha文件相关权限
usermod-G student westos
setfacl-m u:studnet:rwx /haha
setfacl-m g:student:rwx /haha
smbpasswd-a admin
然后分别以不同用户身份挂载,对磁盘进行写操作,经过对比,会发现不同
browseable = yes ----共享是否可见
validusers =student ---仅student用户可以使用共享服务
在客户端设置如下:没设置之前只要root用户挂载,切换身份之后其他用户也是可见的,设置后,其他用户不可见
yuminstall cifs-utils -y
mount-o credentials=/root/smbfile,multiuser,sec=ntlmssp//172.25.254.239/DATA /mnt
---multiuser多用户模式,sec=ntlmssp认证方式credentials=/root/smbfile用smbfile文件下的用户身份登陆
su-kiosk
cifscredsadd -u student 172.25.254.239 ---切换用户后,用此命令,该用户即可以smb用户身份登陆