`
冷静
  • 浏览: 146037 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

Linux NFS典型实例及权限详解

阅读更多

1,首先对NFS服务作简单的配置,修改主配置文件,

[root@localhost ~]# vim /etc/exports

/tmp    *(rw,no_root_squash,sync)
/public 192.168.0.0/24(rw,sync)      *(ro,sync)
/test   192.168.0.100(rw,sync)
/linux  *.feifan.com(rw,all_squash,anonuid=40,anongid=40,sync)

 

2,不要忘了创建目录哦,并做权限修改

[root@localhost ~]# mkdir /public
[root@localhost ~]# mkdir /test
[root@localhost ~]# mkdir /linux

[root@localhost ~]# chmod 757 /public/
[root@localhost ~]# chmod 757 /test/
[root@localhost ~]# chmod 757 /linux/

好了,现在可以启动了,

[root@localhost ~]# service portmap start

[root@localhost ~]# service nfs start

如果不放心是否真的启动了,可以查询一下

[root@localhost ~]# netstat -tulnp

tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN     

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN  

 

[root@localhost ~]# rpcinfo -p localhost
    程序     版本 协议   端口
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    783  status
    100024    1   tcp    786  status
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   udp   1026  nlockmgr
    100021    3   udp   1026  nlockmgr
    100021    4   udp   1026  nlockmgr
    100021    1   tcp   3953  nlockmgr
    100021    3   tcp   3953  nlockmgr
    100021    4   tcp   3953  nlockmgr
    100011    1   udp    622  rquotad
    100011    2   udp    622  rquotad
    100011    1   tcp    625  rquotad
    100011    2   tcp    625  rquotad
    100005    1   udp    626  mountd
    100005    1   tcp    629  mountd
    100005    2   udp    626  mountd
    100005    2   tcp    629  mountd
    100005    3   udp    626  mountd
    100005    3   tcp    629  mountd

这里还可以连线观察

[root@localhost ~]# showmount -e localhost
[root@localhost ~]# tail /var/lib/nfs/etab

重新挂载设定内容

[root@localhost ~]# exportfs -arv

为了安全,不要忘记设定防火墙哦

[root@localhost ~]# iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 111 -j ACCEPT

[root@localhost ~]# iptables -A INPUT -i eth0 -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT

也可以使用TCP Wrappers来限制

[root@localhost ~]# vim /etc/hosts.allow

mountd: 192.168.0.0/255.255.255.0

mountd: 192.168.1.0/255.255.255.0

[root@localhost ~]# vim /etc/hosts.deny

mountd: ALL

 

3,Client的使用

[root@localhost ~]# showmount -e 192.168.0.2 (NFS ip)

[root@localhost ~]# mount -t nfs 192.168.0.2:/public/ /public

如果是开机就挂载了,就必须修改配置文件

[root@localhost ~]# vim /etc/fstab
192.168.0.2:/public  /public  nfs nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768  0 0

这里我要说的是,还有一种更好的挂载方法,可以让Client要使用NFS共享的目录资料时,才去挂载它,当隔了5分钟没有使用的时候,就主动的卸载它, 要注意的是,那些 /home/nfs/public 是不需要事先建立的。

[root@localhost ~]# vim /etc/auto.master

/home/nfs       /etc/auto.nfs --timeout=60

[root@localhost ~]# mkdir /home/nfs

[root@localhost ~]# vim /etc/auto.nfs

public  -rw,bg,soft,rsize=32768,wrise=32768     192.168.0.2:/public
testing -rw,bg,soft,rsize=32768,wrise=32768     192.168.0.2:/test
temp    -rw,bg,soft,rsize=32768,wrise=32768     192.168.0.2:/tmp

[root@localhost ~]# /etc/init.d/autofs restart

[root@localhost ~]# cd /home/nfs/public

[root@localhost public]#

竟然进来了,是不是很奇怪啊呵呵

 

4,实例演示完了,下面详细分析档案权限

情况一:Client 端与 Server 端具有相同的 UID 与帐号
    假设我在 192.168.0.100 登入 NFS Server (IP 假设为 192.168.0.2) 主机,并且192.168.0.100 的帐号为 tom 这个身份,同时,在这部 NFS 上面也有 tom 这个帐号,并具有相同的 UID,那么,

    ①. 由于 192.168.0.2 这部 NFS 主机的 /tmp 权限为 -rwxrwxrwt ,所以 192.168.0.100 上面的用户在 NFS 的/tmp 底下具有存取的权限,并且写入的档案所有人为 tom ;
   ②. 在 /public 当中,由于我有读写的权限,所以如果在 /public 这个目录的权限对于 tom 有开放写入的话,那么我就可以读写,并且我写入的档案所有人是 tom,但是如果 /public 对于 tom 这个使用者并没有开放可以写入的权限时, 那么我还是没有办法写入档案,这点请特别注意!
    ③. 在 /test 当中,我的权限与 /public 相同,但是还需要 NFS 主机的 /test 对于tom 有读写限;
    ④. 在 /linux 当中,由于用户身份一定都会被变成 UID=40 这个帐号,所以,这个目录就必需要针对 UID = 40 的那个帐号名称,修改他的权限才行。

情况二:Client 端与 Server 端的帐号不同

    假如我在 192.168.0.100 的身份为 tom ,但是 192.168.0.2 这部 NFS 主机却没有 tom 这个帐号时,情况会变成怎样呢?

    ①. 我在 /tmp 底下还是可以写入,但是写入的档案所有人变成 nobody 了;
    ②. 我在 /public 里面是否可以写入,还需要视 /public 的权限而定,不过,我的身份被变成 nobody ;
    ③. /test 与 /public 相同;
    ④. /linux 底下,我的身份被变成 UID = 40 那个使用者。

情况三:Client 端的身份为 root
    假如我在 192.168.0.100 的身份为 root,权限变成怎样

    ①. 我在 /tmp 里面可以写入,并且由于 no_root_squash 的参数,改变了预设的 root_squash 设定值,所以在 /tmp 写入的档案所有者为 root ;
    ②. 我在 /public 底下的身份还是被压缩成为 nobody ,因为预设属性里面都具有 root_squash ,所以,如果 /public 有针对 nobody 开放写入权限时,那么我就可以写入,但是档案所有人变成 nobody ;
    ③. /test 与 /home/public 相同;
    ④. /linux 的情况中,root 的身份也被压缩成为 UID = 40 的那个使用者。

 

在我讲解实例以及权限之后,您应该了解了很多,如果这一关通过了,那么你的 NFS 服务掌握的非常好了,在这里还希望大家提出宝贵意见,给我留言,我的QQ: 303247761

 

有兴趣的朋友可以做这样一个实例:
假设环境∶

   1. 假设我的 Linux 主机为 192.168.0.100 这一部;
   2. 预计将 /tmp 以可读写,并且不限制使用者身份的方式分享给所有 192.168.0.0/24 这个网域中的所有 Linux 工作站;
   3. 预计开放 /home/nfs 这个目录,使用的属性为唯读,可提供除了网域内的工作站外,向外亦提供资料内容;
   4. 预计开放 /home/upload 做为 192.168.0.0/24 这个网域的资料上传目录,其中,这个 /home/upload 的使用者及所属群组为 nfs-upload 这个名字,他的 UID 与 GID 均为 210;
   5. 预计将 /home/andy 这个目录仅分享给 192.168.0.50 这部 Linux 主机,以提供该主机上面 andy 这个使用者来使用,也就是说, andy 在 192.168.0.50 及 192.168.0.100 均有帐号,且帐号均为 andy ,所以预计开放 /home/andy 给 andy 使用他的家目录啦!

分享到:
评论

相关推荐

    Linux nfs Linux nfs Linux nfs

    ### NFS在Linux及嵌入式开发中的应用详解 #### 一、NFS简介 NFS(Network File System,网络文件系统)是由SUN公司在1984年开发的一项技术,其核心理念是允许用户在网络中透明地访问远程主机上的文件系统,如同访问...

    嵌入式Linux应用实例

    ### 嵌入式Linux应用实例之文件、进程与线程控制详解 #### 一、概述 本章节重点介绍在嵌入式Linux环境下如何进行文件、进程以及线程的控制与通信。通过具体的编程实例,深入浅出地解析了相关的API使用方法及注意...

    ARM的嵌入式Linux移植应用实例

    ### ARM的嵌入式Linux移植应用实例知识点解析 #### 一、引言 在嵌入式系统的开发过程中,Linux作为一种开放源代码的操作系统,因其高度的定制化能力和丰富的开发资源而受到广泛欢迎。本文旨在介绍如何在ARM架构的...

    RHEL5下NFS服务器配置与应用

    ##### 第三步:NFS服务器配置实例 创建多个共享目录,然后编辑`/etc/exports`文件,添加共享目录及其对应的客户端和选项。 ```bash [root@huyb~]# mkdir -p /nfs/public [root@huyb~]# mkdir /nfs/huyb [root@huyb~...

    Linux设备管理命令详解.pdf

    Linux设备管理命令详解 本文档详细介绍了Linux设备管理命令的使用和应用,包括设备管理的基本概念、设备管理命令的使用方法、 devices文件系统、驱动程序控制、设备命名规则等。 知识点1: 设备管理的基本概念 ...

    企业级NFS网络文件共享服务1

    在企业生产环境中,NFS exports配置实例可能包括限制特定IP地址或子网的访问,设置读写权限,以及设置缓存策略等。例如,可以为数据库服务器设置只读访问,为备份服务器设置读写访问,并对特定的开发团队提供特定...

    两台linux之间实现共享文件夹挂载实例参考.pdf

    在Linux系统中,实现两台机器之间的文件夹共享和挂载是通过网络文件系统(Network File System,简称NFS)来完成的。NFS允许一台Linux服务器(在这里是10.89.8.5,域名www.cmz.com)共享其文件系统,使得其他远程...

    3_Linux系统与服务构建运维.rar

    《Linux系统与服务构建运维详解》 在信息技术领域,Linux操作系统因其开源、稳定和高度可定制的特性,被广泛应用于服务器、嵌入式设备及个人电脑等场景。本资料包聚焦于Linux系统的构建与运维,涵盖了从基础概念到...

    NFS服务器的搭建[文].pdf

    【NFS服务器搭建详解】 NFS(Network File System),网络文件系统,是一种基于TCP/IP协议族的协议,用于在不同的操作系统之间实现文件共享。在Linux/UNIX系统中,NFS被广泛应用于跨设备的数据共享,使得多台机器...

    虚拟机Linux下实现文件夹共享

    - **工作原理**: 通过安装虚拟化软件(如VMware、VirtualBox等),可以在主机操作系统之上创建多个独立的操作系统实例,这些实例可以运行不同的操作系统。 - **应用场景**: 开发测试环境搭建、软件兼容性测试、安全...

    老男孩linux笔记上

    本文档是一份关于Linux运维技术的详细笔记,包含了Linux系统安装后的基本优化、系统服务配置、服务器管理工具应用、网络文件系统(NFS)的部署与应用、以及Apache和Nginx这两个流行的Web服务器的详细配置和应用案例...

    linux实用培训教程

    - **命令行操作**:详解常用Linux命令,如ls、cd、mv、cp、rm、grep、find等,以及如何进行文件权限管理和进程控制。 2. **shell脚本编程** - **bash基础知识**:介绍Bash shell的语法,包括变量、条件语句、循环...

    Linux 运维入门到高级.pdf

    ### Linux 运维入门到高级知识点详解 #### 一、Linux 学习技巧与入门篇 **1.4 Linux 学习技巧** - **虚拟机安装:** 推荐初学者自行安装虚拟机环境,以便在安全隔离的环境中进行实验操作。 - **常用命令练习:** ...

    Linux驱动开发

    ### Linux驱动开发知识点详解 #### 一、Linux系统介绍 **1. Linux体系结构** Linux系统的核心在于其分层的设计思想。从宏观角度看,Linux由用户空间和内核空间两部分构成。用户空间负责应用程序的运行,而内核...

    Prentice.Hall.PTR.A.Practical.Guide.to.Ubuntu.Linux.2008.pdf

    - 安装界面及安装过程中各项设置的详解,如分区、网络配置等。 **1.3 步骤式安装** - **章节简介**:提供了一个从头到尾的详细安装教程。 - **核心知识点**: - 实际操作步骤详解,包括从准备阶段到最终完成安装...

    707461e5410a57c7e41cd79674ba7ac5.pdf

    根据提供的部分内容,我们可以...以上内容详细介绍了如何在Ubuntu Linux操作系统中配置和使用Samba及NFS服务器,包括基本的命令行操作、配置文件编辑等关键步骤。这些知识点对于IT专业人士来说是非常实用且必要的技能。

    linux基础试题库

    ### Linux基础知识点详解 #### 1. i节点与文件系统的逻辑物理转换 在Linux中,i节点(Inode)是连接文件逻辑结构和物理结构的关键。每个文件在文件系统中都有一个唯一的i节点,它存储了文件的元数据,如权限、所有...

    wineNFS源代码

    【NFS源代码详解】 NFS(Network File System)是一种由Sun Microsystems开发并推广的分布式文件系统协议,它允许用户通过网络访问远程计算机上的文件,就像这些文件存储在本地计算机上一样。NFS源代码是理解和实现...

Global site tag (gtag.js) - Google Analytics