Linux学习笔记-RH135之文件共享系统samba、nfs和iscsi

2021/6/17 7:32:42

本文主要是介绍Linux学习笔记-RH135之文件共享系统samba、nfs和iscsi,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文件共享系统samba、nfs和iscsi

  • 1、samba的多用户挂载
  • 2、autofs+samba
  • 3、NFS(Net File System)
  • 4、autofs+nfs
  • 5、iscsi

1、samba的多用户挂载

如果root用户使用自己的samba账号登陆后挂载到mnt,westos用户不用通过用户验证也可以看到共享的目录,这样显然是不合适的。还有命令中直接输入了账户和密码,mount查看或者history查看可以看到用户名和密码,很不安全。所以想独立使用samba账号,隐藏账户和密码,samba的多用户挂载。
在这里插入图片描述

首先dnf install cifs-utils -y安装cifs-utils插件,创建存放root自己的samba用户名和密码的文件/root/smbpasschmod 600 /root/smbpass 只有root自己可以查看该文件,其他用户不能查看。挂载时用到credentials=/root/smbpass这个参数,表示指定认证文件,不用直接输入用户和密码了,可以读取放密码的文件了。解决了隐藏账户和密码的问题
在这里插入图片描述
挂载时用到multiuser这个参数,表示支持多用户,即没有通过认证的用户不能访问samba服务,现在root用户挂载好,westos就无法查看挂载了。
在这里插入图片描述

假如westos也有自己的独立账号呢?挂载时多加sec=ntlmssp这个参数,表示指定认证方式,现在westos也可以用自己的samba账号登陆。刚开始切换过去被拒绝,westos用户用自己的samba账号认证cifscreds add -u westos 172.25.254.88,输入正确密码后,就可以访问samba服务了。如果显示已经登陆了,记录的是之前的错密码,就cifscreds clearall 清空之前的缓存,重新认证。
在这里插入图片描述

2、autofs+samba

之前使用的这种挂载方法mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.88/xixi /mnt只要挂载上,不论我们是否进行数据读写,都一直占用资源,这样不好,我们想对数据交互时,再挂载。首先在客户端安装autofs服务,编辑/etc/autofs.conf主配置文件,默认是300秒,设定3秒后就失效
在这里插入图片描述

假如最终想挂载到/westos/samba,不用提前创建/westos/samba,编辑/etc/auto.master主策略文件,添加最终挂载点的上层目录和自动子策略文件
在这里插入图片描述
编辑/etc/auto.samba子策略文件,添加最终挂载点,挂载参数和挂载资源,samba -fstype=cifs,credentials=/root/smbpass,sec=ntlmssp,multiuser ://172.25.254.88/xixisystemctl restart autofs 重启autofs服务。
在这里插入图片描述
测试:重启autofs后,westos目录会自动被建立,但是没东西,可以看到现在没挂载,cd /westos/samba进入子目录,看到共享文件了,df一查,自动挂载了。cd出来,等三秒,df挂载资源自动卸载。
在这里插入图片描述
以上的最终挂载点是三级目录,如果是直接挂载到/westos这样的二级目录挂载,主策略文件不能写/,要写/-,并且子策略文件中要写绝对路径,不能写相对路经。如果samba验证延迟时,是解析的问题。

3、NFS(Net File System)

nfs也是用来共享文件的系统,比samba更安全,为什么呢?看下图,火墙允许了nfs,还不行,我们还需要允许rpc-bind,他的作用是随机分配端口,不是固定端口,这样更安全。还不够,还要允许mountd,他相当于nfs的大内总管,拿着分配的端口找mountd,他同意了,才能真正访问nfs。两边都安装nfs-utils
在这里插入图片描述
在服务端:
systemctl start nfs-server 开启nfs服务
firewall-cmd --permanent --add-service=rpc-bindfirewall-cmd --permanent --add-service=mountdfirewall-cmd --permanent --add-service=nfsfirewall-cmd --reload火墙允许
在这里插入图片描述
编辑 /etc/exports文件,添加共享目录,共享给谁(共享参数),下图表示共享/westos目录给所有人,权力是只读。exportfs -rv 刷新/etc/exports文件。
在这里插入图片描述

在客户端:
showmount -e 172.25.254.88 就会显示所有共享的目录和策略,mount 172.25.254.88:/westos /mnt/ 成功挂载
在这里插入图片描述

####nfs配置参数####
ro 只读
rw 读写,现在建立文件,用户是nobody
anonuid=1000 指定建立文件的用户身份(如果客户端和服务端的1000指的不是一个用户名,那么会不一致)
anongid=1001 指定建立文件的用户组(如果客户端和服务端的1001指的不是一个用户组,那么会不一致)
sync 更改生成后同步数据到服务器
async 时时同步数据到服务器
no_root_squash 以root用户挂载,不转换身份

4、autofs+nfs

和autofs+samba类似,首先在客户端安装autofs服务,编辑/etc/autofs.conf主配置文件,设定3秒后就失效了,编辑/etc/auto.master主策略文件
在这里插入图片描述

编辑/etc/auto.nfs子策略文件,systemctl restart autofs 重启autofs服务。测试:重启autofs后,westos目录会自动被建立,
cd /westos/nfs,df一查,自动挂载了,cd出来,等三秒,df挂载资源自动卸载。
在这里插入图片描述

如果共享目录里有五个子目录subdir1,subdir2,subdir3,subdir4,subdir5
在这里插入图片描述

想分别挂载到/westos/subdir1,/westos/subdir2,/westos/subdir3,/westos/subdir4,/westos/subdir5里,怎么办?最直接就是在/etc/auto.nfs子策略文件都写一遍
在这里插入图片描述

有更简单的方法吗?编辑/etc/auto.nfs子策略文件如下,现在就算有1万个子目录也不怕。一条命令就搞定
在这里插入图片描述

5、iscsi

前面学的都是设备先mkfs.xfs做了文件系统,再共享文件系统,客户端mount挂载到一个设备上才能读写,我们能不能直接把一个设备的读写权限共享出来呢?
服务端(创一个新的硬盘vdb):
fdisk /dev/vdb创建分区,dnf install targetcli -y安装targetcli,开启target。正常是编写配置文件,但是这个的配置文件是json语言写的,难度大,所以借助管理命令targetcli,建立内部共享名称,建立外部共享名称,关联内部和外部共享名称,建立访问控制的密钥。并且火墙允许iscsi端口。firewalld-cmd --add-port=3260/tcp,重启火墙firewalld-cmd --reload
在这里插入图片描述
客户端:
dnf install iscsi-initiator-utils.x86_64 -y 安装服务,编辑配置文件 /etc/iscsi/initiatorname.iscsi目的是给密码,systemctl restart iscsid重启服务。iscsiadm -m discovery -t st -p 172.25.254.88 读取88主机的iscsi,iscsiadm -m node -T iqn.2021-06.org.westos:disk1 -p 172.25.254.88 -l 登陆设备,现在就成功使用该设备了。
在这里插入图片描述
测试:
fdisk -l 可以查看到/dev/sdamkfs.xfs /dev/sda 做系统,mount /dev/sda /mnt挂载就可以使用了
在这里插入图片描述
客户端卸载时:
iscsiadm -m node -T iqn.2021-06.org.westos:disk1 -p 172.25.254.88 -u 临时登出,iscsiadm -m node -T iqn.2021-06.org.westos:disk1 -p 172.25.254.88 -o delete 删除设备
在这里插入图片描述
服务端删除:清除缓存,共享就取消了
在这里插入图片描述



这篇关于Linux学习笔记-RH135之文件共享系统samba、nfs和iscsi的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程