文件共享系统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相关推荐

  1. Linux学习笔记---初次编译Uboot系统

    在初次编译Uboot系统时,是按照正点原子开发指南操作的,但是开发指南上讲得不是很详细,又看了一遍视频教程才搞清楚完整步骤,为了方便学习,就将详细步骤记录下来,以便以后参考. Uboot初次编译 1. ...

  2. linux学习笔记十四:安装SAMBA(Server Message Block)

    NFS:仅用于Linux之间 CIFS:仅用于Windows之间 SAMBA:可用于Linux与Windows之间,基于NetBIOS协议(用于LAN内部,不能跨路由),没有IP地址的概念,根据 Ne ...

  3. linux学习笔记 第七篇 (samba(一))(iscsi)

    alias: alias xie='vim'(退出再登陆不可用) alias vim .bashrc(只有root用户可用:用户级变量) alias xie='vim' source .bashrc ...

  4. Linux学习笔记-RH135之Apache的管理及优化

    Apache的管理及优化 1.Apache的作用 2.Apache的启用 3.Apache的基本配置 4.Apache的访问控制 (1)基于ip的黑名单 (2)基于ip的白名单 (3)基于用户的访问控 ...

  5. linux学习笔记-RH135(六):网络文件系统

    网络文件系统 一.samba服务 1.samba基本信息 2.samba的安装与启用 3.samba用户的建立 4.samba用户访问家目录 6.samba访问控制 7.samba的常用配置参数 8. ...

  6. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  7. Linux学习笔记---使用tftp命令下载文件

    向开发板下载数据时,不仅可以通过nfs命令下载,还可以通过更简单的命令tftp下载. 用网线将开发板和笔记本连接起来,设置好网络环境.网络的具体设置方法可以参考 Linux学习笔记---网线直连电脑和 ...

  8. LINUX学习笔记—SAMBA使用篇 smb 文件共享--学习篇

    LINUX学习笔记-SAMBA使用篇 smb 文件共享 (转) Linux学习笔记-Samba使用篇 前言:半个月前开始安装.学习redhat LINUX7.0.作为一个Linux新手,不可避免的遇上 ...

  9. Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从

    Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...

最新文章

  1. redis序列化_实例讲解Springboot以Template方式整合Redis及序列化问题
  2. Coin Slider
  3. java export命令_Linux 命令详解(一)export 命令
  4. python 星号*使用方法
  5. 腾讯AI Lab刘霁谈机器学习,异步计算和去中心化是两大杀器
  6. python字母大小写排序_Python中sorted()排序与字母大小写的问题
  7. php怎么获取用户所在地址,php获取客户端ip及获取ip所在地址
  8. opipe--一款基于java的自定义“命令”管道
  9. html中播放的语法是什么,css语法是什么?
  10. 取色工具ColorPix
  11. Windows安装TortoiseSVN
  12. PHP 实现301转向代码
  13. 即时通信和实时通信的区别
  14. 我是一只可可爱爱的小粽子
  15. 怎样把软件从计算机移到桌面上,怎么样才能将旧电脑的重要软件移动到新电脑上?...
  16. 身份证号码的严格校验(非正则)
  17. Week15 实验 B - ZJM 的本领 CodeForces - 499A
  18. 算法训练一(贪心、二分)(含解题思路)(上)
  19. 移动端布局 - rem布局
  20. scrapy shell 调试报错TypeError: module.__init__() takes at most 2 arguments (3 g iven)

热门文章

  1. ssh登陆到别的主机上,ssh登陆被禁止
  2. 你真的了解 setState 吗?
  3. 联合书单 | 6本书,李诞带你感受数学之美
  4. GBase 8a JDBC连接方法
  5. Linux CPU、内存监控命令详解
  6. 广搜(bfs)和 深搜(dfs)(新手)
  7. 【LeetCode】日程表
  8. [BZOJ2957]楼房重建
  9. NOIP复习模拟赛day1
  10. 编辑html的写字板,jQuery写字板插件