目录
一、 samba
1、samba服务简介
smb = Server Message Block Sumcifs = Common Internet File System Miscrosoftwindows 系统共享文件时用到的协议 smb
1、全称:Server Message Block
2、在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成
3、SMB协议是一种在局域网上共享文件和打印机的通信协议
4、CIFS是公共的或开放的SMB协议版本,并由Microsoft使用
2、samba基本信息
服务启动脚本 | smb.service |
主配置文件 | /etc/samba |
安全上下文 | samba_share_t |
端口 | 139 445 |
安装包 | samba、samba-common |
3、samba的安装与启用
服务端:
dnf install samba samba-common samba-client -y ##安装samba
systemctl enable --now smb.service ##设定开机启动
firewall-cmd --permanent --add-service=samba ##
firewall-cmd --reload
客户端:
dnf install samba-client -y ##安装客户端
测试:
smbclient -L //192.168.1.25
4、samba用户的建立
- samba用户必须是本地存在的用户
smbpasswd -a linux ##添加用户
pdbedit -L ##查看用户列表
pdbedit -x linux ##删除用户
useradd -s /sbin/nologin linux ##建立系统用户;后面可加-M,表示不创建家目录
5、samba用户访问家目录
- 当selinux开启时,开启samba的家目录sebool值
setsebool -P samba_enable_home_dirs on
Linux下:
服务端:
cd /home/yyl/
touch file1
客户端:
smbclient //192.168.1.25/yyl -U yyl
6、samba服务共享目录
- 服务端:
mkdir /samba
touch /samba/file{1..5}chmod 777 /samba/
semanage fcontext -a -t samba_share_t '/samba(/.*)?' ##修改linux目录及目录下文件的安全上下文
restorecon -RvvF /samba/ ##刷新安全上下文cd /etc/samba/
cp -p smb.conf.example smb.conf ##用配置文件模板做配置文件
vim /etc/samba/smb.conf ##编辑配置文件
systemctl restart smb
- 客户端:
(1)直接访问:
smbclient //192.168.1.25/SHARE -U yyl
(2)挂载后查看:
mount //192.168.1.25/SHARE /mnt -o username=yyl,password=123456
7、samba的访问控制
vim /etc/samba/smb.conf
hosts allow ##当写到单独共享时之对此共享生效hosts deny ##当写到 【 GLOBAL 】 时对 samba 整体生效systemctl restart smb
(1)全局共享设定:
允许访问设定:
25主机访问:
其他主机访问:
拒绝访问设定:
25主机访问:
其他主机访问:
(2)单独共享设定:
- 将之前的全局共享设定全部注释,防止对单独共享的影响
25主机访问:
其他主机访问:
拒绝共享的设定和全局一样,只需写在对应共享下即可
注:单独共享的设定,允许的优先级也是高于拒绝设定
8、samba的常用配置参数
实验前设定:
chmod 777 /samba/ ##为不影响所有程序对它的写入
(1)写的设定
writable = yes | 可写 |
write list = westos | 指定用户可写 |
write list = +westos|@westos | 指定用户组可写 |
可写
服务端:
客户端:
指定用户可写:
指定用户组可写
更改linux用户附加组
(2)访问与隐藏共享的设定
valid users = westos | 指定访问 |
valid users = +westos|@westos | 指定访问用户组 |
browseable = yes|no | 是否隐藏共享 |
指定访问
指定访问用户组
更改用户组
是否隐藏共享
(3)匿名用户的访问与指定使用超级用户共享设定
map to guest = bad user | 写到全局设定中 |
guest ok = yes | 允许匿名用户访问 |
admin users = sk | 指定此共享的超级用户身份 |
9、samba的多用户挂载
- 在客户端如果用普通的挂载方式,没有用过用户验证的人也可以访问samba服务
- 客户端下载下面的插件使每个用户必须经过验证才可以访问samba
credentials=/root/smbpass | 指定认证文件(防止密码裸露) |
sec=ntlmssp | 指定认证类型 |
multiuser | 支持多用户 |
dnf install cifs-utils -y ##安装认证插件
vim /root/smbpass ##编辑认证文件
chmod 600 /root/smbpass ##只有自己可以查看此文件,提高安全性
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.1.25/SHARE /mnt ##指定认证文件,认证类型,支持多用户
su - test ##切换到test用户
cifscreds add -u test 192.168.1.25 ##添加test用户认证
添加认证报错解决方法
cifscreds add -u test -d 192.168.1.25
cifscreds clearall ##清除账户,再重新认证即可
二、 共享——NFS和ISCSI
1、NFS
(1)、nfs的基本信息
nfs——New File System(网络文件系统)
安装包 | nfs-utils |
服务脚本 | nfs-server |
共享配置文件 | /etc/exports |
(2)、nfs的安装启用
dnf install nfs-utils -y ##服务端和客户端一体
systemctl enable --now nfs-server.service
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
测试:
showmount -e 192.168.1.25
(3)、nfs的配置
注意编辑完配置文件后,不需要重启服务,只需刷新即可
mkdir /nfsshare
touch /nfsshare/yyl{1..5}
vim /etc/exports
exportfs -rv ##刷新共享,不用重启服务
(4)、nfs配置参数
anonuid=1001,anongid=1001 | 指定用户身份 |
sync | 更改生成后同步数据到服务器 |
async | 时时同步数据到服务器 |
rw|ro | 读写| 只读 |
root_squash | 当以root身份访问时,视其为匿名用户 |
no_root_squash | root用户挂载不转换身份,还是root用户 |
2、ISCSI
(1)、iscsi的基本信息
- Internet小型计算机系统接口
- 当用samba或nfs共享设备时,需要先格式化设备,再挂载设备,最后共享挂载点,使用步骤较长
- 可以直接共享设备的使用权
(2)、服务端配置
(1)先建立一块大小为2G的磁盘,做共享使用
(2)安装服务端,并启用
dnf install targetcli -y
systemctl enable --now target
(3)进行配置(编辑配置文件太过麻烦,使用配置工具)
targetcli
/>/backstores/block create yyl:storage /dev/sda1 ##建立网络磁盘
/>/iscsi create iqn.2023-09.org.yyl:storage ##创建对外共享
/>/iscsi/iqn.2023-09.org.yyl:storage/tpg1/luns create /backstores/block/yyl:storage ##将对外共享和网路磁盘关联
/>/iscsi/iqn.2023-09.org.yyl:storage/tpg1/acls create iqn.2023-09.org.yyl:yylkey1 ##建立外部访问的key
(4)添加3260端口到火墙(为解决后面客户端连接不上的问题)
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
tree /var/lib/iscsi/
可用此命令查看,相对清楚
(3)、客户端配置
(1)安装客户端
dnf install iscsi-initiator-utils.x86_64 -y
(2)进行配置
vim /etc/iscsi/initiatorname.iscsi ##编辑认证文件
systemctl restart iscsid
(4)、客户端测试
-m
:指定动作,-p
:指定主机,st
:send target,-T
:指定名称,-l
:登录,-u
:登出
iscsiadm -m discovery -t st -p 192.168.1.25 ##在客户端发现服务端的设备
iscsiadm -m node -T iqn.2023-09.org.yyl:storage -p 192.168.1.25 -l ##登录即使用网络磁盘
iscsiadm -m node -T iqn.2023-09.org.yyl:storage -p 192.168.1.25 -u ##登出即退出使用网络磁盘
(5)、iscsi的永久挂载
iscsiadm -m node -T iqn.2023-09.org.yyl:storage -p 192.168.1.25 -l
fdisk /dev/sda ##创建分区
mkfs.xfs /dev/sda1 ##将分区格式化
vim /etc/fstab ##编辑开机挂载文件
mount -a ##使挂载立即生效(重新读取/etc/fstab文件)
(6)、iscsi的删除
(1)客户端
vim /etc/fstab ##注释或删除永久挂载
umount /mnt ##卸载挂载点
iscsiadm -m node -T iqn.2023-09.org.yyl:storage -p 192.168.1.25 -u
iscsiadm -m node -T iqn.2023-09.org.yyl:storage -p 192.168.1.25 -o delete
(2)服务端
targetcli
clearconfig confirm=True
三、 autofs——自动挂载卸载
1、autofs+samba+nfs
- 在客户端实现自动挂载卸载的软件
- 系统级的存储分离,不对内存造成过多浪费,即用即取
dnf install autofs-1:5.1.4-82.el8.x86_64 -y ##安装autofs插件
systemctl enable --now autofs.service ##设定开机启动
vim /etc/auto.master ##编辑主策略文件
vim /etc/auto.sambavim /etc/auto.nfs ##编辑子策略文件
vim /etc/autofs.conf ##编辑配置文件
systemctl restart autofs.service ##重启服务
测试:
自动挂载:
自动卸载: