NFS

近来在Linux下进行PXA270板子上的嵌入式 开发,需要使用到Linux一些服务配置,比如NFS和TFTP,开始不熟悉的话会遇到很多麻烦,所以写一点文章,希望有同样经历的网友不会再走一些弯路。

  我的Linux系统是MagicLinux,是国人开发的Linux系统,中文支持好,使用的是bsh。大体上跟RedHat系列的Linux系统差不多。

  下面介绍NFS的安装与配置:

  1.以root的身份在控制台输入setup,在系统服务选项中选中

  • nfs
  • portmap 服务选项portmap服务对NFS 是必须的,因为它是NFS 的动态端口分配守护进程,如果portmap不启动,NFS就启动不了的。如果Linux上系统服务上没有这个配置选项,可以到网上搜索一些相关的软件包。

      2.编辑 /etc/exports 文件

      exports文件是NFS的共享目录配置文件,主要是指定共享目录和共享策略。使用vi命令编辑,在文件中加入类似下面的内容:

      / *(rw,sync) # ‘/’ 和 ‘*’ 之间要有一个空格
      /home 10.13.9.19(rw,sync) *(ro,sync)

      第一条规则 / 表示整个根目录进行共享,* 表示对于所有用户共享,rw 可读写,sync 文件同步

      第一条规则 /home 表示共享目录,当然你还可以类似的添加其他目录进行共享。后面的内容表示对ip为10.13.9.19的主机赋予读写权限,其他机器 * 仅有读写权限。

      还有其他一些设置方法,如:

       / bluefish(rw,no_root_squash) #对主机名为bluefish 的用户共享
       /share 172.29.0.0/255.255.0.0(ro)
       /share/private (noaccess)

      选项说明:

       ro read only
       rw read write
       no_root_squash 信任客户端,对应 UID
       noaccess 客户端不能使用

      3.然后在控制台分别执行以下两条命令

       [root]# service portmap restart
       [root]# service nfs restart

      如果看到一连串的[ok]时,表示已经启动成功了。如果第一次启动,nfs ,又使用restart命令,可能开始会出现一些[FAILED],那是在停止nfs服务,而nfs服务还没有启动所以会FAILED。

      当然你还可以使用其它命令来启动或关闭nfs服务:

       start 启动 NFS 服务
       stop 停止 NFS 服务
       restart 停止并重新启动 NFS 服务
       reload 重新载入 NFS 设定值

      4.测试NFS服务

      要测试NFS是否真正配置的成功,只要进行以下测试:

       [root]# mout -t nfs 10.13.9.19:/{cwd} /mnt #{cwd}是NFS共享的目录,/mnt 是挂载到本地的服务

      如果你在/mnt 下可以看到NFS共享目录的内容,表示你NFS设置成功了。使用#umount /mnt 取消挂载。

      5.另外还可以使用一些命令查看NFS的各种状态:

       showmount -e 可看有分享哪些目录
       # showmount -a 可看出所有的 mount

      检查NFS的运行级别:

       # chkconfig --list portmap
       # chkconfig --list nfs

      根据需要设置在相应的运行级别自动启动NFS:

       # chkconfig --level 235 portmap on
       # chkconfig --level 235 nfs on
  •  

     

     

     

    linux nfs 配置示例

    关键字: linux nfs 配置示例

    7.2.2  配置/etc/exports文件

    用户可以把需要共享的文件系统直接编辑到/etc/exports文件中,这样当NFS服务器重新启动时系统就会自动读取/etc/exports文件,从而告诉内核要输出的文件系统和相关的存取权限。在下面的例子中显示了/etc/exports文件中几个条目项的内容,被挂载在/pub目录下的文件系统具有只读访问权限,所有的计算机在访问文件系统的时候不必经过安全检查。编辑/etc/exports文件:

    # vi /etc/exports
    /usr/sys/src -maproot=daemon host2
    /usr/ports -ro -network 192.168.1.0
    

    从上面这个例子中可以看出exports文件的格式,首先是定义要共享的文件目录。必须使用绝对路径,而不能使用符号链接。然后设置对这个目录进行访问限制的参数,用于保证安全性。在第1行设置中,将/usr/sys/src目录共享出去。但限制客户机上的root用户等价于本机上的daemon用户,以避免客户机上的root用户拥有这个服务器上的root权限进行非法操作。此后的host2参数是主机名,从而限制只有host2才能共享这个/usr/sys/src目录;第2行设置共享/usr/ports目录,但限制为只允许读取,并且也只有网络上的192.168.1.0计算机才能访问这个共享目录。

    (1)rw:可读写权限。

    (2)ro:只读权限。

    (3)no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。

    (4)root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。

    (5)all_squash:忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。

    (6)anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

    (7)anongid:同anonuid,但是变为Group ID。

    (8)sync:同步写入资料到内存与硬盘中。

    (9)async:资料会先暂存于内存中,而非直接写入硬盘。

    主机可以使用以下格式。

    (1)单个机器:一个全限定域名(能够被服务器解析)、主机名(能够被服务器解析)或IP地址。

    (2)使用通配符来指定的机器系列,使用 * 或 ?字符来指定一个字符串匹配。IP地址中不使用通配符。如果反向DNS查询失败,它们可能会碰巧有用。在完整域名中指定通配符时,点(.)不包括在通配符中。例如,*.example.com包括one.example.com,但不包括one.two.example.com.。

    (3)IP网络:使用a.b.c.d/z,a.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。另一种可以接受的格式是a.b.c.d/netmask,a.b.c.d是网络,netmask是子网掩码(如192.168.70.8/255.255.255.0)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值