实验环境 需要两台主机
一台为服务器 另一台为客户端
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
smb = Server Message Block ##Miscrosoft
cifs = Common Internet File System ##SUN
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
Linux 用到的是 cifs
为项目服务的主机不能只有一台,若只有一台主机信息量太大容易崩溃,所以一个项目必须有很多太主机为之服务。但很多太主机就容易管理不当造成其中的主机失控宕机,其他的主机并不能对此主机进行访问,会造成此主机内的信息丢失。为了避免此情况的发生,使整套主机系统更加稳定,则需要为此套系统、主机群设定一个存储、一个公用的存储,所有主机通过网络连接这个存储。若一台主机出现了问题,其他的主机也可以通过网络访问到这台主机的信息,这样所有主机的信息都不会丢失。这就是存储分离。
服务启动脚本: smb.service
主配置目录: /etc/samba
主配置文件: /etc/smb.conf
安全上下文: samba_share_t
端口:139、445
安装包: samba
samba-common
samba的安装:
dnf install samba samba-common samba-client -y
samba服务启动:
systemctl enable --now smb
samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试
smbclient -L //192.168.0.41
samba用户必须是被地存在的用户
samba用户的建立
smbpasswd -a 用户名 | 添加用户 |
---|---|
pdbedit -L | 查看用户列表 |
pdbedit -x 用户名 | 删除用户 |
重新设置一个配置文件
cp /etc/samba/smb.conf.example /etc/samba/smb.conf
生成模板文件之后重启服务
systemctl restart smb.service
测试
smbclient //192.168.0.41/westos -U westos
当selinux开启时:需要执行
setsebool -P samba_enable_home_dirs on
建立一个目录与文件
mkdir /westosamda
touch /westosamda/westosfile
编辑主配置文件
vim /etc/samba/smb.conf
重新启动服务
systemctl restart smb.service
查看是否能够访问
smbclient -L //192.168.0.41 -U westos
安全上下文的修改
semanage fcontext -a -t samba_share_t ‘/westosamba(/.*)?’
restorecon -RvvF /westosamba/
若访问系统目录
编辑主配置文件
vim /etc/samba/smb.conf
设定
getsebool -a | grep samba
打开读写权限
setsebool -P samba_export_all_rw on
在主配置文件中编辑
writable = yes | 对所有用户可写 |
---|---|
write list = westos | 指定用户可写 |
write list = +westos/@westos | 指定组可写 |
valid users = lee | 指定访问用户 |
valid users = +lee/@lee | 指定访问组 |
browseable = yes/no | 是否隐藏共享 |
map to guest = bad user | 写到全局设定中 |
guest ok = yes | 允许匿名用户访问 |
admin users = lee | 指定此共享的超级用户身份 |
在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务
首先安装服务
dnf install cifs-utils -y
mount -o credentials=/root/smbauth,multiuser //192.168.0.61/WESTOS /mnt
卸载再挂载
cifscreds add -u westos 192.168.0.61
通过认证了以后才可以浏览samba的资源
所以 用的时候自动挂载,不用的时候自动卸载 这才是最优的使用方式
安装autofs服务
yum install -y autofs
再配置子配置文件
vim /etc/auto.samba
重启服务
systemctl restart autofs.service
再将开机自动启动开启
systemctl enable --now autofs.service
第二步
编辑主配置文件
vim /etc/auto.master
编辑的顺序是
最终挂载点的上层目录 | 自动以子策略文件 |
---|---|
/samba | /etc/auto.samba |
然后冲洗启动服务
systemctl restart autofs.service
设定默认卸载时间
vim /etc/autofs.conf
nfs基本信息
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件
nfs的启用
安装软件
dnf install nfs-utils -y
打开服务
systemctl enable --now nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
火墙允许
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
完成后编辑一个配置文件
vim /etc/exports
刷新
exportfs -rv
这些都是在配置文件时 后加的参数
sync | 更改生成后同步数据到服务器 |
---|---|
async | 时时同步数据到服务器 |
rw | 读写 |
ro | 只读 |
no_root_squash | root用户挂载不转换身份 |
anonuid=1000,anongid=1000 | 指定用户身份 |
参看autofs章节内容
vim /etc/auto.nfs
编辑 vim /etc/auto.nfs
重启服务
systemctl restart autofs.service
作用:把主机内的磁盘通过网络共享出去
安装服务
dnf install targetcli -y
共享命令
targetcli
在另一台主机(共享主机)
安装服务
dnf install iscsi-initiator-utils.x86_64 -y
编辑key文件
启动服务
systemctl restart iscsid.s
将设备id写到 /etc/fstab
永久性的删除
iscsiadm -m node -T iqn,2022-11.org.westos:storagel -p 192.168.0.50 -o delete