IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux的NFS服务的深度学习 -> 正文阅读

[系统运维]Linux的NFS服务的深度学习

NFS服务器:? ? ??

??NFS服务,是允许网络中的计算机之间通过TCP/IP网络共享资源,主要在Lunix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样(共享使用服务器文件)。

????????NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

与FTP的区别在于:NFS是将共享的文件创建出来,然后客户端把服务器的目录挂载到本地的目录上,而访问的挂载目录就相当于访问服务器的的共享目录

NFS服务器文件配置:

//在服务端上配置服务需要的插件(rpcbind和nfs)
[root@localhost ~]# yum install rpcbind
[root@localhost ~]# yum install nfs-utils

//nfs-utils提供NFS服务
//rpcbind则是提供支持NFS服务的端口号

//nfs的主配置文件在/etc/export下
[root@lxb ~]# vim /etc/exports

//初始情况下,该文件为空文件

而文件可以配置的格式为:
共享目录文件(权限)    主机名(权限)    

共享的目录文件:
是指服务器共享的目录,而这个共享的目录在客户端上的具体操作权限取决于服务端上改文件的具体权限

主机名:
①完整的IP或者是网段,如172.24.8.128或172.24.8.0/24或172.24.8.128/255.255.255.0
②也可以使用主机名,但主机名必须要在/etc/hosts内,存在映射关系(ip -> 主机名)
③或可以使用DNS域名解析解析出对应的IP地址(有可以解析这个域名的DNS服务器)
④还可以用 * 来代表所有主机(网络的缺省地址0.0.0.0/0)

文件读取的权限: ro/rw
ro:只读   rw:读写   //但是最终能否读写,还是与文件系统的rwx有关
  
no_root_squash / root_squash	默认为root_squash
如果客户端在共享目录里创建的文件的所属者和所属组是root用户和root组,那么显示文件的属主和属组时有以下两种情况:
    no_root_squash --- 文件的所属者和所属组是root用户和root组
    root_squash    --- 将root用户和组映射为匿名用户和组(默认)
    
all_squash / no_all_squash      默认为no_all_squash
?	all_squash    --- 客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组
    no_all_squash --- 客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认)

anonuid=    anongid=	
    将文件的用户和组映射为指定的UID和GID,若不指定默认为  65534 ---> (nfsnobody)

//而在客户端上需要使用nfs-untils的showmount -e 功能
此时会显示服务器的共享状态
//此时需要通过挂载然后,才能对共享文件操作

NFS属性练习:

服务器创建两个共享文件,一个只读,另一个读写:

//服务器配置共享文件/nfs/{shared,shared2}
[root@lxb ~]# mkdir -pv /nfs/{shared,shared2}

[root@lxb ~]# vim /etc/exports
/nfs/shared2  *(ro)
/nfs/shared   *(rw)

//此时查看客户端
[root@localhost ~]# showmount -e 192.168.220.234
Export list for 192.168.220.234:
/nfs/shared  *
/nfs/shared2 *

//客户端挂载文件
[root@localhost ~]# mount 192.168.220.234:/nfs/shared  /guazai1
[root@localhost ~]# mount 192.168.220.234:/nfs/shared2  /guazai2

//此时在客户端创建文件需要服务器权限
[root@lxb nfs]# chmod o+w /nfs/shared

//创建文件
[root@localhost hh]# vim 8
[root@localhost hh]# ll
-rw-r--r--. 1 nobody nobody  4 Dec 23 21:18 8

//此时文件为默认匿名,但是在用户lxb下创建就是本人
[root@localhost hh]# ll
-rw-rw-r--. 1 lxb    lxb     6 Dec 23 21:08 7

//如果需要修改,则需要在服务器修改为:
[root@lxb nfs]# vim /etc/exports
/nfs/shared   *(rw,no_root_squash)

//重启服务,并在客户端上查看
[root@localhost hh]# vim 9
[root@localhost hh]# ll
-rw-r--r--. 1 root   root    7 Dec 23 21:32 9


//对于ro权限的挂载目录,无论在服务器怎么给权限,都无法在客户端进行文件操作

?设置指定用户名映射:

#开放/nfs/upload目录,该目录为192.168.220.0/24网段的主机的数据上传目录,
#并将所有该网段主机上传文件的所属者和所属组映射为nfs-upload,其UID和GID为2001

//第一步配置文件
[root@lxb tom]# cat /etc/exports
/nfs/upload   192.168.220.0/24(rw,anonuid=2001,anongid=2001)   

//重启服务,并在服务器上查看挂载情况
[root@lxb tom]# showmount -e 192.168.220.234
Export list for 192.168.220.234:
/nfs/shared  *
/nfs/shared2 *
/nfs/upload  192.168.220.0/24

//此时去客户端查看挂载情况,并挂载到客户端
[root@localhost /]# showmount  -e 192.168.220.234
Export list for 192.168.220.234:
/nfs/shared  *
/nfs/shared2 *
/nfs/upload  192.168.220.0/24
[root@localhost /]# mount 192.168.220.234:/nfs/upload /guazai3

//在客户端创建文件
[root@localhost /]# cd guazai3
[root@localhost guazai3]# vim 1
[root@localhost guazai3]# ll
total 4
-rw-r--r--. 1 2001 2001 5 Dec 23 22:27 1

//此时发现文件的所属人和所属组为2001
//原因:  服务端固定的uid和gid为2001 ,在客户端没有产生对应映射的uid和gid
//此时在服务端或客户端创建uid与gid为2001的nfs-load
//会发现此时组和主为nfs-load创建的文件
[root@lxb nfs]# cd /nfs/upload/
[root@lxb upload]# ll
总用量 4
-rw-r--r--. 1 nfs-load nfs-load 5 12月 23 22:27 1

#将/home/tom(该目录为uid=1111,gid=1111的tom用户的家目录)
#仅共享给192.168.220.234这台主机上的jerry用户,jerry对该目录具有访问、新建和删除文件的权限

[root@lxb nfs]# vim /etc/exports

/nfs/shared2  *(ro)
/nfs/shared   *(rw,no_root_squash)
/nfs/upload   192.168.220.0/24(rw,anonuid=2001,anongid=2001)
/nfs/tom    192.168.220.132(rw,anonuid=1111,anongid=1111)

//此时要注意!!!需要先设置  /nfs/tom    192.168.220.132(rw),并挂载后,
//再去附加anonuid=1111,anongid=1111 ,否则会存在无法读取的问题!!!

//挂载重启服务
[root@lxb tom]# showmount -e 192.168.220.234
Export list for 192.168.220.234:
/nfs/shared  *
/nfs/shared2 *
/nfs/upload  192.168.220.0/24
/nfs/tom     192.168.220.132
[root@localhost guazai3]# mount 192.168.220.234:/nfs/tom /guazai4
//此时再去附加anonuid=1111,anongid=1111 

//此时在客户端创建用户tom和tom组
[root@localhost guazai4]# useradd tom -u 1111
[root@localhost guazai4]# groupadd tom -g 1111
[root@localhost guazai4]# usermod  -u 1111 -g 1111 tom

//最后创建文件查看
[root@localhost guazai4]# vim 1
[root@localhost guazai4]# ll
total 4
-rw-r--r--. 1 tom tom 6 Dec 23 22:56 1

//再去创建jerry用户
[root@localhost guazai4]# useradd jerry
//给jerry一个acl权限/把jerry加入到tom组,并设置这个文件的770权限

//给jerry的acl权限
[root@localhost guazai4]# setfacl -m  u:jerry:rwx /guazai4
setfacl: /guazai4: Operation not supported
[root@localhost guazai4]# su jerry
[jerry@localhost guazai4]$ vim 2
[jerry@localhost guazai4]$ ll
total 8
-rw-r--r--. 1 tom   tom   6 Dec 23 22:56 1
-rw-rw-r--. 1 jerry jerry 6 Dec 23 23:00 2
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:55:01  更:2021-12-24 18:56:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:38:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码