第三本书第五章:网络文件系统——samba、NFS、ISCSI

本章实验需要两台主机:nodea、nodeb。nodea作为服务端;nodeb作为客户端
1. samba服务简介
作用:
smb = Server Message Block     Sum
cifs = Common Internet File System Miscrosoft
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
2.samba基本信息
服务启动脚本:  smb.service
主配置目录:   /etc/samba
主配置文件:   /etc/smb.conf
安全上下文:  samba_share_t
端口: 139、445
安装包: samba 工具包:samba-common  客户端:samba-client

3.samba的安装与启用
1)samba的安装:
dnf install samba samba-common samba-client -y
2)samba服务启动:
systemctl enable --now smb
3)samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
 测试:smbclient -L //172.25.254.170      ##当要输入root密码时直接回车

 3.samba用户的建立
1)samba用户必须是被地存在的用户
2)samba用户的建立
smbpasswd -a lee          ##添加用户
pdbedit -L                      ##查看用户列表
pdbedit -x lee                ##删除用户


4.samba用户访问加目录
当selinux开启时:
setsebool -P samba_enable_home_dirs on
在linux下: smbclient  //172.25.254.170/westos -U westos

 

 5.samba服务共享目录
在服务器端
mkdir /westos             #建立共享目录
touch /westosdir/westosfile{1..5}
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'   #修改共享目录的安全上下文
restorecon -RvvF /westosdir/    #刷新
vim /etc/samba/smb.conf                 #编辑主配置文件添加共享目录
  [westosshare]   ##共享名称(名称可以随便起,但一定要记住共享目录名称)
        comment = westos dir   ##共享说明
        path = /westosdir     ##共享路径
systemctl restart smb    #重启服务
测试:smbclient  //172.25.254.170/westosshare -U lee
在客户端访问共享目录文件
smbclient //共享文件服务器的主机ip/共享名称 -U   #列出指定ip提供的共享文件
mount -o username=samba用户名,password=密码 //共享文件主机ip/共享名称  /挂载目录

samba服务共享目录实验

在nodea中:
 mkdir /westos
 cd /etc/samba/
 pwd
 ls
 mv smb.conf smb.conf.bak
 ls
 cp smb.conf.example smb.conf   
 ls
 getenforce   #查看selinux的状态
 vim smb.conf   #编辑主配置文件。添加共享目录
     [westosshare]      ##共享名称
            comment = westos dir  ##共享说明
            path = /westos        ##共享路径
 systemctl restart smb        #重启服务
 semanage fcontext -a -t samba_share_t '/westos(/.*)?'     #修改共享目录的安全上下文
 restorecon -RvvF /westos/     #刷新
 ls -Zd /westos/   #查看目录的安全上下文
 touch /westos/file{1..10}
 ls -Z /westos/     #查看文件安全上下文

 在客户端检测:

在nodeb中检测刚才共享的目录:
mount -o username=lee,password=westos //172.25.254.170/westosshare /mnt/   #挂载
df
ls /mnt/
umount /mnt/

6.samba的访问控制
hosts allow   172.25.254.30 172.25.254.  ##当写到单独共享时之对此共享生效
hosts deny          ##当写到【GLOBAL】时对samba整体生效

vim /etc/samba/smb.conf
   添加:hosts deny = 172.25.254.200  #这个ip的主机不可以访问
systenctl restart smb

在nodeb中测试


实验做完恢复之前实验数据

7.samba的常用配置参数
writable = yes           ##可写

服务器端(nodea)编写主配置文件

测试:在客户端


write list = westos      ##指定用户可写


write list = +westos     ##指定组可写【+也可换成@】


valid users = lee        ##指定访问用户


valid users = +lee       ##指定访问组


browseable = yes|no      ##是否隐藏共享


map to guest = bad user     ##写到全局设定中
guest ok = yes           ##允许匿名用户访问


admin users = lee        ##指定此共享的超级用户身份呢

8.samba的多用户挂载
在客户端如果用普通的挂载方式。没有通过用户验证的人也可以访问samba服务
dnf install cifs-utils -y
vim /root/smbpass
     username=westos
     password=lee
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.20/westosdir /mnt
#credentials=/root/smbpass   指定认证文件
#sec=ntlmssp    指定认证类型
#multiuser    支持多用户

实验:客户端nodeb中:

dnf install cifs-utils -y  下载服务
vim .smbauth   #建立一个隐藏文件
  username=lee
  password=westos
chmod 600 .smbauth   #给隐藏文件可读可写权限
mount -o credentials=/root/.smbauth //172.25.254.170/westosshare /mnt/   #挂载,指定认证文件(不用把密码裸露到外边)
ls l /mnt/  #可以列出文件信息
su - westos  #切换普通用户身份
 ls -l /mnt/ #普通用户westos登陆也可以列出文件信息
exit #退出普通用户
umount /mnt/  #卸载
mount -o credentials=/root/.smbauth,multiuser //172.25.254.170/westosshare /mnt/  #挂载,支持多用户
ls -l /mnt/   #超级用户身份可以列出文件信息
su - westos  #切换普通用户身份
  ls -l /mnt/ #普通用户westos登陆不能列出文件信息
exit  #退出普通用户
umount /mnt/   #卸载 
mount -o credentials=/root/.smbauth,multiuser,sec=ntlmssp //172.25.254.170/westosshare /mnt/
ls -l /mnt/  #挂载 指定认证类型
su - westos   #进入westos用户身份
 ls -l /mnt/  #普通用户不能列出文件
 cifscreds --help  
 cifscreds add -u westos 172.25.254.170 #输入密码,输入成功后就可以列出文件信息
 ###输入密码不成功的话输入:cifscreds clearall 清除原来信息,之后再次执行cifscreds add -u westos 172.25.254.117命令,输入正确密码,就可以列出文件信息了
 ls -l /mnt/  #普通用户westos也可以列出文件信息
exit
umoubt /mnt/


 自动挂载卸载实验:
nodeb中

dnf install autofs-1:5.1.4-40.el8.x86_64 -y  #下载服务
systemctl enable --now autofs.service
vim /etc/auto.master   #编辑文件
   /samba  /etc/auto.samba  #/samba是自动挂载目录的上级目录。/etc/auto.samba是子配置文件
vim /etc/auto.samba      #编辑子配置文件
   westos  -fstype=cifs,credentials=/root/.smbauth,multiuser,sec=ntlmssp   ://172.25.254.170/westosshare    #westos是最终挂载点。中间是挂载参数。冒号后是挂载资源
systemctl restart autofs.service   #重启服务
cd /samba/
cd westos
df  #可以看到进入/samba/westos目录中会自动挂载
等待资源闲置超时会自动卸载,默认时间为300秒。
vim /etc/autofs.conf  #在主配置文件中修改默认卸载时间
  timeout = 3   #修改默认自动卸载时间为3秒
systemctl restart autofs.service 
cd /samba/    #进入目录
cd westos     #进入/samba/westos目录
df
cd  #退出/samba/westos目录到根目录
df  #等待3秒可以看到自动卸载

9.NFS
1)nfs基本信息:
nfs-utils          ##安装包
nfs-server         ##服务脚本
/etc/exports            ##共享配置文件
2)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 172.25.254.170
Export list for 172.25.254.170:
3)nfs配置
vim /etc/exports      ##此文件更改后生效exportfs -rv
共享目录           共享给谁(共享参数)
/westos            *(ro)   #*代表所有
测试:mount 172.25.254.30:/westos /mnt/ 

实验:

在nodea(服务端)中

dnf install nfs-utils -y
systemctl enable --now nfs-server
showmount -e 172.25.254.170     #查看nfs服务器共享信息
 Export list for 172.25.254.170:
firewall-cmd --permanent --add-service=nfs       #在火墙中永久开启nfs设定
firewall-cmd --permanent --add-service=rpc-bind    #开启rpc设定
firewall-cmd --permanent --add-service=mountd      #开启mountd设定
firewall-cmd --reload
mkdir /westosnfs     #创建共享目录
chmod 777 /westosnfs/        #修改目录权限
vim /etc/exports
   /westosnfs      *(rw)
exportfs -rv        #刷新

 在nodeb(客户端)中检测:

dnf install nfs-utils -y
showmount -e 172.25.254.170
 =Export list for 172.25.254.170:
  /westosnfs *
mount 172.25.254.170:/westosnfs /mnt/   #把172.25.254.170:/westosnfs  挂载到/mnt/
cd /mnt/
touch file{1..10}
ll #可以看出建立文件的所有人和所有组都是nobody

 nfs配置参数
anonuid=1000,anongid=1000    ##指定用户身份
sync                         ##更改生成后同步数据到服务器
async                        ##时时同步数据到服务器
rw                           ##读写
ro                           ##只读
no_root_squash               ##root用户挂载不转换身份

实验:

在nodea中:
id westos  #查看westos用户的id
vim /etc/exports
  /westosnfs      *(anonuid=1000,anongid=1000,rw)  #指定建立文件的用户身份【所有人和所有组都是westos】
exportfs -rv


在nodeb中检测:

mount 172.25.254.170:/westosnfs /mnt/
cd /mnt/
rm -rf *
touch file1  #file1文件的拥有者和拥有组都是westos

在nodea中:

vim /etc/exports
   /westosnfs      *(anonuid=1000,anongid=1000,rw,sync) #在nodeb中写的文件退出保存后才会同步到nodea这台服务器中
exportfs -rv  #刷新



在nodeb中:
vim test  #在编写完文件退出保存后才会同步到nodea中(效果不明显)

 

在nodea中:
vim /etc/exports
  /westosnfs      *(rw,sync,no_root_squash)  #root用户挂载不转换身份【挂载后建立的文件所有人和所有组都是root】
exportfs -rv  #刷新


在nodeb中:
touch file2  #file2文件的所有人和所有组都是root
umount /mnt/ #卸载的时候一定要退出mnt目录

 

 nodeb中的自动挂载和卸载

实验

vim /etc/auto.master
  /nfsshare  /etc/auto.nfs
vim /etc/auto.nfs
  westosnfs       -rw     172.25.254.170:/westosnfs
systemctl restart autofs.service
cd /nfsshare  #进入挂载目录的上级目录
cd westosnfs  #进入到挂载目录
df  #查看已经挂载了
cd #退出目录到根目录
df #等待三秒看已经自动卸载了

iscsi
实验:

在nodea中: 

dnf install targetcli -y
fdisk -l  #查看磁盘分区,没有第二块磁盘的话重新建立一个 【5g大小就够用】
fdisk /dev/vdb  #建立磁盘分区【一个分区就可以,大小为2G,记得wq退出保存】
fdisk -l   #查看分区是否建立成功
targetcli
 > ls
 >backstores/block create westos:storage1 /dev/vdb1
 >/iscsi create iqn.2021-11.org.westos:storage1
 >/iscsi/iqn.2021-11.org.westos:storage1/tpg1/luns create /backstores/block/westos:storage1 
 >/iscsi/iqn.2021-11.org.westos:storage1/tpg1/acls create iqn.2021-11.org.westos:westoskey1
 >ls
 >exit
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
firewall-cmd --list-all

 

 

 在客户端:nodeb中


dnf search iscsi
dnf install iscsi-initiator-utils.x86_64 -y
iscsiadm -m discovery -t st -p 172.25.254.170
iscsiadm -m node -T iqn.2021-11.org.westos:storage1 -p 172.25.254.170 -l  #不成功
vim /etc/iscsi/initiatorname.iscsi  #编写文件
   InitiatorName=iqn.2021-11.org.westos:westoskey1  #从nodea中把钥匙复制粘贴过来
systemctl restart iscsid
fdisk -l
iscsiadm -m node -T iqn.2021-11.org.westos:storage1 -p 172.25.254.117 -l #登陆成功
fdisk -l  #查看分区同步成功
fdisk /dev/sda  #在建立一个分区【直接点回车(大小默认)】
mkfs.xfs /dev/sda1    #格式化
mount /dev/sda1 /mnt/   #挂载
df  #查看挂载是否成功

 

 

 

永久挂载:

实验:(客户端中

blkid  #查看(复制最后一行的uuid)
vim /etc/fstab
   UUID=70f0bd48-6bba-4955-b610-711e28cc3278 /mnt     xfs  defaults,_netdev  0 0
reboot   #重启
df   #再次查看挂载,挂载成功
fdisk -l  #查看磁盘分区情况【有刚才建立的sda1分区】

 

永久删除【在nodeb中】

***做实验之前一定要看下iscsid、iscsi这两个服务开机前是否启动,没有的话一定要设置开机前启动

systemctl  enable --now iscsid
systemctl  enable --now iscsi
systemctl restart iscsi
umount /mnt/
vim /etc/fstab  #删掉刚才添加的呢一行
tree /var/lib/iscsi/  #查看目录的树结构
iscsiadm -m node -T iqn.2021-11.org.westos:storage1 -p 172.25.254.170 -u #退出登陆
systemctl restart iscsi  #再次重启服务
fdisk -l  #可以看到之前的分区
iscsiadm -m node -T iqn.2021-11.org.westos:storage1 -p 172.25.254.170 -u #退出登陆
iscsiadm -m node -T iqn.2021-11.org.westos:storage1 -p 172.25.254.170 -o delete   #永久删除
【若不执行永久删除命令,iscsi重启后又会重新同步】
fdisk -l  #查看不到分区了
 tree /var/lib/iscsi/   #树结构里也没有刚才建立的东西了

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值