Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1664430
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: LINUX

2008-06-13 20:04:22

2008-01-23 | RedHat9的LINUX环境下NFS的功能设置


在应用程序开发环节,NFS方式比ftp方式的执行效率要高,因为它不需要将linux server端的程序下载到目标系统就可以调试。

建立 linux的NFS开发环境包含着两个方面:一是linux server端的NFS Server支持;二是NFS Client支持。

1 linux server端
1.1 以root的身份登录,编译共享目录的配置文件exports,指定共享目录及其权限。
#vi /etc/exports
在该文件中添加:
/home/lqm 192.168.1.*(rw,sync,no_root_squash)
添加的内容表示允许IP范围在192.168.1.*的计算机以读写的权限来访问共享目录/home/lqm。
【注:参数说明如下:
     rw---读/写权限。如果设定只读权限,则设为ro。但是一般情况下,为了方便交互,要设置为rw
     sync--数据同步写入内存和硬盘。
     no_root_squash--此参数用来要求服务器允许远程系统以它自己的root特权存取该目录。就是说,如果用户是root,那么他就对这个共享目录有root的权限。很明显,该参数授予了target board很大的权利。安全性是首先要考虑的,可以采取一定的保护机制,在下面会讲一下保护机制。如果使用默认的root_squash,target board自己的根文件系统可能有很多无法写入,所以运行会受到极大的限制。在安全性有所保障的前提下,推荐使用no_root_squash参数。另外注意:这三个参数之间不能有空格
1.2 起用保护机制
可以通过设定/etc/hosts.deny/etc/hosts.allow文件来限制网络服务的存取权限。
***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
***/etc/hosts.allow***
portmap:192.168.1.100
lockd:192.168.1.100
mountd:192.168.1.100
rquotad:192.168.1.100
statd:192.168.1.100
同时使用这两个文件就会使得只有ip为192.168.1.100的机器使用NFS服务。你的target board的ip地址设定为192.168.1.100,这样就可以了。
1.3 启动
首先要启动portmapper(端口映射)服务,这是因为NFS本身需要RPC支持。
#/etc/init.d/portmap start
然后启动NFS Server。此时NFS会激活守护进程,然后开始监听客户端的请求。
#/etc/init.d/nfs start
NFS Server启动后,还要检查一下linux server的iptables等,确定没有屏蔽NFS使用的端口和允许通信的主机。
可以首先在linux server上面进行NFS的回环测设。
修改/etc/hosts.allow,把ip改为linux server的ip地址,然后在linux server上执行命令:
#mount -t nfs :/home/lqm /mnt
#ls /mnt
如果NFS Server正常工作,应该在/mnt下面看到共享目录/home/lqm的内容。

2 client
2.1  linux内核应该支持NFS客户端。
2.2  在target board的linux shell下,执行下列命令来进行NFS共享目录的挂载。
#mkdir /mnt/nfs
#mount -t nfs :/home/lqm /mnt/nfs
#ls /mnt/nfs
由于很多嵌入式设备的根文件系统中不带portmap,所以一般都使用-o nolock参数,不使用NFS文件锁,这样就可以避免使用portmap。如果顺利,在/mnt/nfs下,就可以看到linux server的共享文件夹下的内容了,而且两个文件夹内的修改是同步的。



下面是一些NFS共享的常用参数:

ro:只读访问

rw:读写访问

sync:所有数据在请求时写入共享

asyncNFS在写入数据前可以响应请求

secureNFS通过1024以下的安全TCP/IP端口发送

insecureNFS通过1024以上的端口发送

wdelay:如果多个用户要写入NFS目录,则归组写入(默认)

no_wdelay:如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。

hide:在NFS共享目录中不共享其子目录

no_hide:共享NFS目录的子目录

subtree_check:如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)

no_subtree_check:和上面相对,不检查父目录权限

all_squash:共享文件的UIDGID映射匿名用户anonymous,适合公用目录。

no_all_squash:保留共享文件的UIDGID(默认)

root_squashroot用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squasroot用户具有根目录的完全管理访问权限

anonuid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的UID

anongid=xxx:指定NFS服务器/etc/passwd文件中匿名用户的GID

阅读(916) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~