一.基本概念

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

Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,提供CIFS(Common Internet File System)协议,由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

二.samba服务器的安装及访问调试

在服务端

yum  install samba-client  samba-common  samba  -y
systemctl stop firewalld
systemctl  start  smb

CIFS文件共享

setsebool  -P samba_enable_home_dirs on  ##在selinux打开访问家目录bool开关

CIFS文件共享

smbpasswd -a student ##设定密码,student必须为本机用户 
pdbedit -L   ##查看
pdbedit  -x student   ##删除

CIFS文件共享
测试
在客户端

yum  install   samba-client   -y
smbclient  -L  //172.25.254.220  -U  student       ##用smb用户显示内容
smbclient  //172.25.254.220/student  -U  student   ##登陆

CIFS文件共享
CIFS文件共享

三.samba共享目录

1.共享自建目录
vim /etc/samba/smb.conf ##主配置文件

[HELLO]                 ##共享名称
comment = samba dir     ##共享说明
path = /samba           ##共享目录路径

CIFS文件共享

systemctl restart smb
semanage  fcontext  -a  -t  samba_share_t   '/samba(/.*)?'  ##共享自建立目录时需要修改的selinux属性,只针对自建目录
restorecon  -FvvR  /samba

CIFS文件共享

测试
在客户端查看
CIFS文件共享

2.共享系统原有文件

不能更改安全上下文,否则其他程序在使用系统原有文件时可能会产生问题,共享系统建立目录要修改的selinux属性,此方式针对所有目录,一旦开放,selinux不保护目录访问,可在smb配置文件中查看说明

vim /etc/samba/smb.conf

[mnt]
comment=samba dir
path=/mnt

CIFS文件共享

system  restart  smb
setsebool  -P  samba_export_all_rw on  ##可以读写
setsebool  -P  samba_export_all_ro on    ##只读

CIFS文件共享

测试
在客户端

smbclient  //172.25.254.220/共享名称  -U student

CIFS文件共享

四.samba共享目录的管理参数

vim  /etc/samb/smb.conf

writable= yes                ##可写,并且修改/jay的权限为777才可写
write list =student          ##可写的用户
write list =+/@ student      ##可写的组
admin  users=student         ##所设定共享的管理员
valid  users = student       ##指定用户可登陆
valid  users = +/@studen     ##指定组可登陆
browseable=  no              ##共享目录被隐藏

CIFS文件共享
测试
在客户端

mount   //172.25.254.220/hello  /mnt  -o username=student,password=123

CIFS文件共享

五.访问控制

在服务端

vim /etc/samba/smb.conf

[HELLO]
comment = samba dir
path = /samba
hosts deny = 172.25.254.120     ##相当于黑名单,不允许120访问  allow则是白名单,也可以设置网段172.25.254. ,多个用户则用空格隔开

CIFS文件共享

systemctl restart smb.service

测试
mount //172.25.254.120/hello /mnt -o username=student,password=123
利用挂载的方式访问
发现120不能挂载
CIFS文件共享

六.samba的匿名访问

vim /etc/samba/smb.conf
workgroup = MYGROUP   ##修改共享目录的domin,全局设定

CIFS文件共享

125          map  to guest = bad user   ##准许通过匿名用户方式访问

[HELLO]
comment = samba dir
path = /samba
 hosts allow = 172.25.254.120
guest  ok = yes     ##HELLO准许匿名用户访问

CIFS文件共享
CIFS文件共享
测试

mount   //172.25.254.220/HELLO    /mnt  -o username=guest

CIFS文件共享

七.samba多用户挂载

在客户端安装多用户挂载软件

yum install cifs-utils

CIFS文件共享
vim /root/smbpassfile ##编写一个认证文件

username=smb用户
password=smb用户密码

CIFS文件共享

chmod 600 /root/smbpassfile

CIFS文件共享
测试

mount  //172.25.254.220/HELLO   /mnt -o credentials=/root/smbpassfile,multiuser,sec=ntlmssp

CIFS文件共享

su - student   ##与smb用户同名
ls /mnt
cifscreds   add   172.25.254.220  ##添加认证
ls  /mnt   查看成功

CIFS文件共享

su - test   ##与smb用户不同名
ls /mnt
cifscreds   add   172.25.254.220  
ls  /mnt   依然不成功

CIFS文件共享

    cifscreds update    -u  test  172.25.254.220    ##更新认证信息
	cifscreds clearall                              ##清除认证信息
	cifscreds   add  -u student  172.25.254.220     ##成功,身份是student

CIFS文件共享

相关文章: