一、什么是CIFS(Common Internet File System):
普通网络文件系统,客户服务器模式,由微软公司和sun公司联合开发的一个模块,主要用来做文件共享(系统之间通过网络)。
二、什么是SMB(server message block):
信息服务块,是一种C/S协议,在会话层,表示层,小部分应用层的协议,一般端口使用139 445,用于计算机间共享文件、打印机、串口等,通过此协议客户端应用程序可以在各种网络环境下读写服务器上的文件,以及对服务器程序提出服务请求
三、什么是SAMBA:
是在linux和unix系统上实现smb协议的一个免费软件,提供cifs协议,由服务器及客户端程序构成
四、如何共享文件
1.安装如下软件
yum install samba samba-client samba-common -y
samba-clicent:RPM软件包中所包含的smbclient实用程序可用来识别有Windows或Samba文件服务器提供的CIFS共享,该实用程序工作起来犹如在Microsoft Windows中单击网络邻居然后mount命令挂载共享,访问CIFS共享的命令
samba-common:命令包
2.开启
systemctl start smb
3.列出文件
smbclient -L //172.25.254.100 匿名用户登陆,密码为空。
若出现列不出来情况:执行:
vim /etc/hosts
172.25.254.100 主机名
结果:匿名用户看不出来共享文件
4.列出samba用户:(samba用户必须是本地用户)
pdbedit -L
5.添加samba用户:
smbpasswd -a student
6.删除samba用户
pdbedit -x student
7.用samba用户列出共享文件
smbclient -L //172.25.254.100 -U student
8.用samba用户进入共享文件(这样不方便,可以用的命令很少)
smbclient //172.25.254.100/student -U student
!ls #列出客户端(登陆前的目录)的文件
ls #当前服务器的文件
put xxx #只能上传登陆前的目录的文件
9.挂载(可以执行的命令多,方便)
临时:
mount //172.25.254.100/student /mnt/ -o username=student,password=lee
df 查看挂载
cd /mnt/
touch file{1..10}
永久:
vim /etc/fstab
//172.25.254.100/student /mnt/ cifs defaults,username=student,password=lee 0 0
mount -a 刷新
df
10.打开selinux(方便做共享实验)
vim /etc/sysconfig/selinux
selinux=enforcing #改为强制模式
getenforce #查看selinux状态 强制状态下访问不了 共享文件
11.对共享文件的操作(相应bool值的设定)
getsebool -a | grep samba 查看smb的selinux
setsebool -P samba_create_home_dirs on 设置可以创建目录
setsebool -P samba_enable_home_dirs on 设置可以写
setsebool -P samba_export_all_rw on 打开这个就可写
12.共享自己建立的文件
mkdir /linux
touch /linux/linuxfile{1..10}
semanage fcontext -a -t samba_share_t /linux(/.*)? 自己建立的文件需要更改安全上下文
restorecon -RvvF /linux 刷新安全上下文
vim /etc/samba/smb.conf
[linux] #客户端看到的名字
comment = dir from linux
path = /linux #路径
valid users=student #只能对于某一个用户 +或者 @ 表示属于这个组的也可以访问
writable = yes #可写
write list = student #指定谁可以写 + 属于student组的也可以写
guest ok = yes #匿名用户可以访问
#匿名用户可以登陆 在126行添加 map to guest = bad user 登陆的时侯使用 -o username=guest登陆
browseable = no #不列出此目录,但是可以用
admin users = student #管理员
hosts allow=172.25.254.250 #允许谁访问
hosts deny=172.25.254.250 #不允许谁访问
workdroup=sqq #外面可以看到的域名
systemctl restart smb.service
13.共享系统自带的目录
setsebool -P samba_export_all_ro on 打开这个,selinux属性就不用改了,自己建立的目录也不用更改安全上下文
vim /etc/samba/smb.conf
[mnt] 客户端看到的名字
comment = dir from linux
path = /mnt
systemctl restart smb.service
五、多用户访问:multiuser
1.定义:
超级用户挂载的文件,普通用户不可以看,需要验证后才可以看。
2.设置多用户挂载
yum install cifs-utils -y 安装此软件(mount.cifs 命令可以使用,说明安装成功)
vim /etc/samba 建立文件(文件名字可以任意,内容为用于多用户登陆的用户名和密码)
username=student
password=lee
mount //172.25.254.100/linux /mnt -o multiuser,credentials=/root/samba,sec=ntmlssp 多用户挂载
3.普通用户若是想看:要经过认证,才方便
cifscreds add -u westos 172.25.254.100 若是密码输入错误需要clear ,然后重新添加,100主机上的westos用户
cifscreds clear -u westos 172.25.254.100
4.作用:
(1)防止没有通过验证的用户访问我的smb
(2)当用户通过验证后,得到相应的用户身份,而不是使用的同一个用户身份