目录
前言
一、samba服务简介
1、windos如何共享文件
2、在linux中访问共享文件
二、samba基本信息
三、samba的安装与启用
1.服务端
2.客户端
3.服务启用
四、建立samba服务共享目录
五、samba用户的建立
六、 samba用户访问加目录
七、samba的访问控制
八、 samba的常用配置参数
九、samba的多用户挂载
十、NFS(Net File System)
前言
为什么要实现网络文件系统?
我们在企业中涉及到同一工作的服务器是有有台,比方说,我们在操作一台服务器时有可能服务器会挂掉,这样这台服务器的账号就不能登录,怎么解决这个问题呢?
实际上应该把数据存放在远端的存储中,当一台主机挂掉后,可以再登录其他的主机去访问数据,这就是企业中实现存储稳定性的技术,也就是存储分离。
我们在远端把文件的读写权限共享出来,可以创建一个目录,把目录的读写权限共享出去,其他的主机通过网络访问这个目录就可以了,这个目录也就是我们常说的网络文件系统,也可以把设备直接共享出去,叫网络设备。共享这个目录的技术有很多,在windows中常用samba,linux中常用的是nfs,共享设备时常用iscsi。下面就来详细介绍一下这三个技术。
首先需要保证linux可以和本地通信,同时软件仓库需要配置好。
一、samba服务简介
作用:
smb = Server Message Block Sum
cifs = Common Internet File System Miscrosoft
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
Linux中共享文件使用的协议是cifs
1、windos如何共享文件
首先账户必选要有密码
win+r,打开控制面板
右键需要共享的文件
怎么访问共享的文件,win+r,输入ip
2、在linux中访问共享文件
1、安装客户端
dnf install samba-client -y
2、列出远程主机的共享
smbclient -L //192.168.1.11 -U PC
3、访问
smbclient //192.168.1.11/hello -U PC
4、上传
put xxxx
!ls可以看到本地的文件
我们也可以上传,只能上传samba执行命令时所在的目录,不可以指定目录。
上传成功,本地已经有这个文件了
或者直接使用挂载的方式:
mount //192.168.1.11/hello /mnt/ -o username=PC,password=123
这样我们在/mnt中存储的东西实际上存储到到windows中的hello中,这样也就实现了存储分离
二、samba基本信息
服务启动脚本 | smb.service |
主配置目录 | /etc/samba |
主配置文件 | /etc/smb.conf |
安全上下文 | samba_share_t |
三、samba的安装与启用
创建共享的时候系统selinux必须为开启状态,因为samba对selinux的要求比较高
1.服务端
2.客户端
3.服务启用
samba服务启动:
systemctl enable --now smb
samba服务启用:
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
准备工作:
dnf install samba-common samba -y #安装samba
cd /etc/samba
cp smb.conf smb.conf.backup
cp smb.conf.example smb.conf
mkdir /westos #创建需要共享的目录
四、建立samba服务共享目录
chcon -t samba_share_t /westos #更改共享目录的安全上下文
vim /etc/samba/smb.conf
[westos] #共享名称
comment = westos #共享说明
path = /westos #共享路径
systemctl enable --now smb
firewall-cmd --permanent --add-service=samba #设定火墙
firewall-cmd --reload测试:
smbclient -L //192.168.1.10
可以展示,证明测试成功
五、samba用户的建立
1.samba用户必须是被地存在的用户
2.samba用户的建立
smbpasswd -a westos ##添加用户
pdbedit -L ##查看用户列表
pdbedit -x westos ##删除用户
六、 samba用户访问加目录
当selinux开启时:
setsebool -P samba_enable_home_dirs on
windows下
\\192.168.1.10 ##访问
net use ##查看访问记录
net use * /del ##删除访问记录
在linux下:
smbclient //192.168.1.10/westos -U westos
七、samba的访问控制
hosts allow 172.25.254.30 172.25.254. #当写到单独共享时之对此共享生效,相当于白名单
hosts deny #当写到【GLOBAL】时对samba整体生,相当于黑名单
写在最上面针对于所有的共享生效
白名单:
vim /etc/samba/smb.conf
黑名单:
可以写在共享之后
八、 samba的常用配置参数
vim /etc/samba/smb.conf
writable = yes ##可写
write list = westos ##指定用户可写
write list = +westos ##指定组可写
write list = @westos
valid users = lee ##指定访问用户
valid users = +lee|@lee ##指定访问组
browseable = yes|no ##是否隐藏共享
map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = lee ##指定此共享的超级用户身份
指定用户可写
指定组可写
需要重新挂载更新一下
指定访问用户
是否隐藏共享 默认的就是yes
指定此共享的超级用户身份
允许匿名用户访问
默认不允许匿名用户访问
写在全局设定中:
开启匿名用户访问
九、samba的多用户挂载
首先需要另一台主机作为客户端
客户端挂载到服务端
客户端的超级用户使用自己持有的smb账号挂载了samba服务器上的资源
客户端的普通用户是否可以在不使用认证的情况下使用root用户挂载的资源呢?
当客户端用户使用自己持有的smb账号挂载了服务器资源后,其他客户端用户可以直接访问,这是不合理的。 所以使用客户端的多用户挂载限制没有认证的用户不能使用共享。
下来我们来解决这个问题
dnf install cifs-utils -y
vim /root/smbpass
username=westos
password=1
mount -o credentials=~/smbauth,sec=ntlmssp,multiuser //192.168.1.10/westos /mnt
#credentials=~/smbpass 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
cifscreds add -u westos 192.168.1.10 添加认证用户身份 密码需要输入正确
因为写了admin user 所以是root
十、NFS(Net File System)
访问方式:
访问nfs时,首先会访问rpcbind,它会分配一个端口,这个端口会去访问mountd服务,mountd服务会告诉它nfs有没有共享什么东西。
nfs是区别于samba服务的另一种网络文件共享方式,基本信息如下:
nfs-utils | 安装包 |
---|---|
nfs-server | 服务脚本 |
/etc/exports | 共享配置文件 |
1.创建一个目录
mkdir /westosnfs
2.安装nfs-utils
3.vim /etc/exports
/westosnfs *(rw) 读写权限
nfs的启用:
systemctl start nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
访问方法:
showmount -e 服务器Ip %出现下述说明时表示访问成功
Export list for 服务器Ip:
nfs配置参数
anonuid=1000,anongid=1000 | 指定用户身份 |
sync | 更改生成后同步数据到服务器 |
async | 时时同步数据到服务器 |
rw | 读写 |
ro | 只读 |
no_root_squash | root用户挂载不转换身份 |