NFS服务器的配置

一、NFS服务器端的配置,即共享发布者

(一)需启动的服务和需安装的软件

1、NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountd
   rpc.nfsd:用来管理客户端PC是否可以登录。类似于windows中的共享权限。
   rpc.mountd:用来管理客户端pc能够使用的文件安全权限。 如windows中的共享安全权限。

RPC:因为NFS支持的功能很多,所以NFS的功能对应的端口才无法固定,而是采用小于1024的随机端口。
    但客户端需要得知服务器的端口才能联机,此时就需要启用RPC服务。
    RPC的功能就是指定每个NFS功能的端口号。并传信息给客户端,让客户端可以连到正确的端口上。
    服务器在启动NFS时会随机取用数个端口,并主动向RPC注册,因此RPC知道每个NFS功能对应的端口。
    RPC用111端口监听客户端的请求,并应答正确的端口。启动NFS前,RPC就要先启动了,否则NFS会无法向RPC注册。

2、NFS服务器需要安装nfs主程序,nfs-utils和rpc主程序 portmap

(二)exports服务器的方法:

1、NFS文件存取权限
因为NFS没有验证机制,当客户端用户访问NFS服务器的共享文件夹时会遇到的权限情况:

(1)NFS服务器端用户列表中有与客户端用户名相同的用户名时,客户端可以直接存取共享文件夹。例:客户端用户为khp,而nfs服务器用户列表(/etc/passwd)中也有khp这个用户名,则将拥有KHP权限。。
 
(2)当访问NFS服务器的客户端用户UID与服务器端UID相同,但用户名却不相同时,客户端将拥有与服务器端UID 相同但不同用户的权限。
       例:客户端为 501UID,用户名为  khp的帐号访问NFS服务器。NFS服务器用户列表中(/etc/passwd)有uid为501 ,但用户名为pla的用户,所以客户端khp用户可以拥有NFS服务器pla相同权限。
  
(3)如果客户端用户UID在NFS服务器端用户列表中不存在时,则以匿名用户的权限访问。即nobody的用户。

(4)如果客户端用户为root用户,因为每台电脑都有root用户,如果不作控制,NFS服务器将会很危险,会被客户端全部控制。所以默认root用户名的客户端访问NFS服务器,会变为匿名用户,拥有匿名用户权限。也可不控制。

2、编辑/etc/exports文件,此文件不一定存在,如不存在就手工建立

/etc/exports的格式:

共享目录   允许访问的电脑 (选项)

共享目录:即nfs服务器准备共享的目录
   允许访问的电脑:即允许访问这个共享的客户端有哪些。可用电脑名、IP地址,还可以用通配符。
   
选项:

(1) rw        //读写。客户端拥有读写的权限。  
   (2) ro        //只读  客户端只有读的权限。
   (3) no_root_squash  //root用户可访问,不变成匿名用户,即root用户可以以root用户的权限访问NFS服务器的共享资源。
   (4) root_squash     //root用户变成匿名用户
   (5) all_squash      //所有用户都变成匿名用户 
   (6) anonuid
   (7) anongid          //所有匿名用户的UID或组ID都变为后面设定的UID或GID的权限。因为所有在NFS服务器用户列表中没有用户名的都会匿名用户,这里设定这些匿名用户的用户权限。
   (8) sync             //同步到硬盘  
   (9) async            //数据存放到内存而不是直接写到硬盘

例:   /mnt/export  www.elitek.com(rw)   //这个目录只允许www.elitek.com这台电脑读写。注意,后面(rw)前没有空格。
       /mnt/export  www.elitek.com (rw)  //   /mnt/export这具目录只允许www.elitek.com这台电脑读写,且允许所有其他用户读写权限。(rw)前面有空格。
       /mnt/export  *.elitek.com(rw)     //允许所有elitek.com这个域里的电脑读写这个共享文件夹。

3、exportfs命令。  可以更改设置    (命令目录/usr/sbin/exportfs)

exportfs  [-avu][-o option] [director]
-a:把 exprotfs里的所有路径都共享出去
-u:把export出去的路径取消
-v:在export时,共享显示到屏幕
-o option  :即一些选项
-r :重新挂载exports里的设置

例:  exportfs  -a  ro /tmp/user    //即把/tmp/user目录全部exports,但用户只能读取资料。

4、/var/lib/nfs/*tab   //存放日志文件.etab记录NFS共享出来的目录完整权限设置。  .xtab记录曾经连接引NFS的客户机数据

5、rpcinfo  [-p] [ip |电脑名]   //查看RPC服务的注册状态

6、netstat -ultn  查看开放了哪些端口

二、客户端的端设置

作为NFS客户端需要先运行  nfslock和 portmap服务。  /etc/init.d/nsflock  start  
                                                  /etc/init.d/portmap  start

并且有几种挂载方法

(一)、命令方式

mount 命令挂载

1、 showmount  -e   [nfs服务器电脑名| ip地址 ]    //查看nfs服务器的可用共享目录

2、mount  nfs主机名:nfs共享目录     挂载到本机的目录    //把nfs服务器共享的目录挂载到本机。主机名外还可用IP地址
  
例:  mount  192.168.9.1:/tmp/export     /tmp/export   //即把192.168.9.1nfs服务器共享的   /tmp/export目录,挂载到本机的  /tmp/export目录上。
      mount -t nfs -o time=20  www.linux.com/home/khp    /tmp/export  //把远程nfs服务器的/home/khp 挂载到本机的/tmp/export目录下。最长响应时间为20秒。

3、 unmount  命令中断挂载

(二)  编辑   /etc/fstab文件挂载

/etc/fstab文件详解在文件系统管理中有说明

1、格式:  NFS服务器及共享目录     挂载到本地的目录    文件格式   选项

www.elitek.com:/home/project     /tmp/export   ro   //把  www.elitek.com这对口NFS服务器上的  /home/project目录挂载到本机的  /tmp/export目录上,且为只读。格式为nfs

2、打开文件夹。此时输入  mount  /tmp/export  即可以打开挂载的文件

(三)autofs来挂载nfs文件系统

只在文件系统被访问时才被挂载。

1、在  /etc/auto.master中定义挂载点    
2、再在  auto.master中定义的   /etc/auto.dirctory   中定义目录的总挂载点。

即在系统文件  /etc/auto.master中先定义一个总的总挂载点。  然后依这个文件中定义的总挂载点文件,再设置详细挂载点。

例:   vi   /etc/auto.master    编辑这个文件:

/misc     /etc/auto.khp   -timeout  60    //即   /etc/auto.khp中的文件将挂载到   /misc目录下

再编辑:   vi   /etc/auto.khp   这个文件,定义挂载点。

myproject   -rw,soft,intr   www.elitek.com:/home/project   //即把NFS服务器 www.elitek.com:/home/project共享目录,挂载到本机的   /misc/myproject目录下。

注意:   /misc/myproject目录是动态的,不是实际存在的,只是在访问时这个目录才会产生。退出就消息。但  /misc目录需存在。

当防火墙开着时,有时就无法访问,可用  /etc/rc.d/init.d/iptables  stop  停用防火墙,或用 iptable命令开放NFS的端口。

nfs服务器的建立的更多相关文章

  1. 建立开发板与PC机之间的nfs服务器

    ARM开发板与PC通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便.接下来,我就详细的介绍下如何建立ARM与PC机的挂接. 我是用的UBuntu系统. 首先,我们需要在主机上安 ...

  2. mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)

    http://blog.csdn.net/yinjiabin/article/details/7489030 建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的 ...

  3. NFS服务器搭建——可用于共享文件或负载均衡文件共享服务器使用

    一.软件包安装 yum -y install nfs-utils  rpcbind 二.服务器端配置共享目录 1. 在服务器上创建NFS共享目录:mkdir /usr/local/test 2. 设置 ...

  4. Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  5. Linux搭建nfs服务器

    使用linux进行嵌入式开发的时候,为了方便开发,通常是将开发板挂载到宿主机的文件系统上,然后将代码放到共享给开发板的目录中,再通过开发板运行. 首先查看是否安装了 nfs 软件包,yum list ...

  6. (转)Linux NFS服务器的安装与配置

    转自:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html 由于在6系列里面,portmap已经改名了 ,6系列需要使用 serv ...

  7. NFS服务器原理

    NFS服务器   port:2049      NFS 为 Network FileSystem 的简称,它的目的就是想让不同的机器.不同的操作系统可以彼此分享个别的档案啦!目前在 Unix Like ...

  8. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  9. 【转载】Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

随机推荐

  1. rsync 断点续传

    # rsync -avzP file root@172.20.7.219:/root/tmp           (我这里file指要传送的文件)

  2. Multi-Objective Data Placement for Multi-Cloud Socially Aware Services---INFOCOM 2014

    [标题] [作者] [来源] [对本文评价] [why] 存在的问题 [how] [不足] assumption in future work [相关方法或论文] [重点提示] [其它]

  3. TCP和UDP报文分片的区别

    搞了三年网络,今天才知道这个细节,汗,总结下: MTU大家都知道,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节.一个IP数据报在以太网中 传输,如果它的长度大于该MTU ...

  4. Java代码之输出参数和(强制类型转换)

    说明(因为Java中java Application的参数都是默认的字符型的数据,所以需要强制类型转换这一步骤) 设计思想: 向系统里输入若干个参数,计算出参数个数,利用for语句计算出参数的和.(程 ...

  5. windows10安装composer并解决和xdebug的冲突

    环境:windows10,php7,php安装目录C:\php\,php目录已加入windows的PATH. 1.下载composer,在Windows下最简单的办法是下载composer.phar并 ...

  6. MySQL-Front 出现“程序注册时间到期 程序将被限制模式下运行”解决方式

    MySQL-Front 出现“程序注册时间到期 程序将被限制模式下运行”解决方式 在用mysql-front的时候遇到显示:程序注册时间到期程序将被限制模式下运行.可以在“帮助”菜单下的点“登记”-- ...

  7. Vanya and Field

    Vanya and Field 题目链接:http://www.codeforces.com/problemset/problem/492/E 逆元 刚看到这题的时候一脸懵逼不知道从哪下手好,于是打表 ...

  8. Cells(Rows.Count, 1).End(xlUp).Row的含义

     NextRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1     这句话的意思是 取活动单元表的第一列最后一个有值的行的下一行行号. ...

  9. 整体认识flume:Flume介绍、分布式安装、常见问题及解决方案

    问题导读 1.什么是flume? 2.flume包含哪些组件? 3.Flume在读取utf-8格式的文件时会出现解析不了时间戳,该如何解决? Flume是一个分布式.可靠.和高可用的海量日志采集.聚合 ...

  10. 《JS权威指南学习总结--第五章语句》

    内容要点: 一.throw语句     所谓异常是当发生了某种异常情况或错误时产生的一个信号.     抛出异常就是用信号通知发生了错误或异常状况.     捕获异常时指处理这个信号,即采取必要的手段 ...