NFS基本知识汇总-(2)

转载 2015年07月09日 18:31:30

NFS 的文件存取权限(以linux为例)

假如我们在 NFS client 1 上面以dmtsai这个使用者身份想要去访问 /home/data/sharefile/ 这个来自 NFSserver 所提供的文件系統时,NFS server 所提供的文件系统会让我们以什么身份去访问,是dmtsai还是其它什么呢?

NFS 服务本身并没有进行身份登入的识别所以说,当你在客户端以dmtsai的身份想要存取服务器端的文件系統时,服务器端会以客户端的使用者 UID GID 等身份来尝试读取服务器端的档案系統。这时候如果客户端与服务器端的使用者身份并不一致怎么办?


当我们以 dmtsai这个一般身份使用者要去访问来自服务器端的文件时,你要先注意到的是: 文件系統的 inode 所记录的属性为UID,GID 而非账号与组名。 那一般Linux 主机会主动的以自己的/etc/passwd, /etc/group 来查询对应的使用者和其组的名称。 所以当 dmtsai 进入到该目录后,会参照NFS client 1 的使用者与群组名称。 但是由于该目录的文件主要来自 NFS server ,所以可能就会出现几个情況:

l   NFS server/NFS client 刚好有相同的账号与组

则此时使用者可以直接以dmtsai 的身份进行服务器所提供的文件系統的存取。

l   NFS server 上的UID=501这个UID 账号对应为vbird

若 NFS 服务器上的 /etc/passwd 里面 UID 501 的使用者名称为 vbird时, 则客户端的 dmtsai 可以存取服务器端的vbird 这个使用者的文件!只因为二者具有相同的 UID 。这就造成很大的問題了!因为没有人可以保证客户端的 UID 所对应的账号会与服务器端相同, 那服务器所提供的资料不就可能会被错误的使用者乱改?

l   NFS server 上没有501 这个UID

另一个极端的情況是,在服务器端并没有 501 这个UID 的存在,则此时dmtsai 的身份在该目录下会被会变成匿名者, 一般 NFS 的匿名者会以 UID =65534为其使用者,早期的 Linux distributions 这个 65534 的账号名称通常是 nobody ,CentOS 则取名为nfsnobody。

l   如果使用者身份是 root 时

有个比较特殊的使用者,那就是每个Linux 主机都有的 UID 为0 的 root 。 想一想,如果客户端可以用 root 的身份去存取服务器端的档案系统的时候,那服务器端的资料那还有什么保护性? 所以在预设的情況下,root 的身份会被主动的变成匿名者。

总之,客户端使用者能做的事情是与 UID 及其 GID 有关的,那当客户端与服务器端的 UID 及账号的对应不一致的时候, 可能就会造成文件系統使用上的困扰,这个就是 NFS 档案系統在使用上面的一个很重要的地方! 而在了解使用者账号与 UID 及文件系统的关系之后,要实际在客户端以 NFS 取用服务器端的文件系統时, 还需要具有:

l   NFS服务器有可写入的权限 (与/etc/exports 设定有关);

l  实际的档案具有可写入 (w) 的权限。

也就是说 (1)、使用者账号,亦即 UID 的相关身份; (2)、NFS服务器允许有写入的权限; (3)、文件确实具有 w 的权限时,你才具有该文件的可写入权限。

相关文章推荐

struts2的基本知识

  • 2012年08月01日 14:00
  • 12KB
  • 下载

【c++】c++初识--基本知识梳理(2)

5.引用VS指针 (1)作用:引用是给变量起一个别名; (2)定义引用的一般格式:          类型 &引用名 = 变量名; 例如: int a = 1; int &b = a; //b是的别名...

关于J2EE的基本知识

  • 2011年08月26日 09:27
  • 5.94MB
  • 下载

2M接口基本知识点简介.doc

  • 2012年06月10日 14:22
  • 426KB
  • 下载

Java多线程设计(二)线程的基本知识(2)共享互斥

1. 概述接着上一章内容Java多线程设计(二)线程的基本知识(1),接下来就要谈一下线程的共享互斥。2. 线程的共享互斥多个线程在操作到同一个实例的时候,就可能会造成重大的灾难。最经典的就是银行取款...

Keil C51开发系统基本知识2

  • 2012年05月06日 14:22
  • 46KB
  • 下载

Java面试题基本知识点总结(2)

  • 2016年05月13日 16:52
  • 121KB
  • 下载

涂鸦数据结构2 基本知识

数据结构起源? 什么是数据结构? 书上给的定义是: 数据结构是研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作的相关问题的学科。(太抽象了……哥打完这一段话楞了半天,没反应过来…...

struts2的基本知识

  • 2014年01月01日 12:12
  • 6.66MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NFS基本知识汇总-(2)
举报原因:
原因补充:

(最多只允许输入30个字)