<一>NFS服务器端的配置
1 安装服务器端:
$ sudo apt-get install nfs-kernel-server
内含客户端所需的套件:nfs-common和portmap
2 服务器端的配置:
配置portmap
$ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.
配置/etc/hosts.deny
$ sudo gedit /etc/hosts.deny
(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
配置/etc/hosts.allow
$ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.13开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页 hosts_access(5), hosts_options(5)。
### NFS DAEMONS
portmap: 192.168.13.
lockd: 192.168.13.
rquotad: 192.168.13.
mountd: 192.168.13.
statd: 192.168.13.
就是先禁止所有IP访问你的共享目录,然后指定某些IP可以访问。
3 运行 $ sudo /etc/init.d/portmap restart 重启portmap daemon.
4 配置/etc/exports:
$ sudo gedit /etc/exports
NFS挂载目录及权限由/etc/exports文件定义,/etc/exports实际上就是nfs服务器的核心配置文件了.
比如我要将我的home目录中的/home/warmbupt/arm/nfs目录让局域网内的所有的IP共享, 则在该文件末尾添加下列语句:
/home/test/arm/nfs * (rw,sync,root_squash)
以上 配置的说明:
所有的NFS客户端能够共享NFS服务器 /home/test/arm/nfs 目录内容.且有读,写权限, 并且该用户进入 /home/test/arm/nfs目录后的身份假如是root,会被squash为匿名用户。最好加上sync, 否则 $ sudo exportfs -r 时会给出警告, sync是NFS的默认选项.
/*参数介绍:
分享的目录 主机名称1或IP1(参数1,参数2) 主机名称2或IP2(参数3,参数4)
/media/sda6/share *(rw,sync)
/media/sda6/share是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限
保存。
sudo exportfs -ra
3.重启服务
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
参数
rw: 可擦写的权限
ro: 只读的权限
no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash: 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份;
all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody 啦!
anonuid: 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
anongid: 同 anonuid ,但是变成 group ID 就是了
sync: 资料同步写入到内存与硬盘当中
async: 资料会先暂存于内存当中,而非直接写入硬盘
*/
设置的实例:
a). /tmp *(rw,no_root_squash) //*号表示所有的IP都可以访问
b). /tmp *(rw)
/home/public 192.168.0.*(rw) *(ro) //下面两行作用一样
/home/public 192.168.0.0/24(rw) *(ro)
c). /home/test 192.168.0.100(rw) //只对某部机器设置权限
d). /home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40) //当*.linux.org登陆此NFS主机,并且在/home/linux下面写入档案时,该档案的所有人与所有组,就会变成/etc/passwd里面对应的UID为40的那个身份的使用者了.
5 修改目录权限 :chmod 777 -R /home/test/arm/nfs
运行 $ showmount -e 查看NFS server的export list.若更改了/etc/exports, 运行 $ sudo exportfs -r 更新
运行 $ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务)
$ sudo iptables -F
测试NFS:
运行 $ df 看看结果
(二)NFS客户端的配置
在开发系统上,同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common。
$ sudo apt-get install nfs-commmon
注:nfs-common和nfs-kernel-server都依赖于portmap!
(三)NFS使用
在客户机上面执行
#sudo /etc/init.d/portmap start
将portmap服务开启。
然后执行(192.168.13.212这是我的服务器IP地址):
# showmount -e 192.168.13.212
如果显示了刚才设置的共享文件夹,证明成功了。
最后执行:
# mount 192.168.13.212:/home/test/arm/nfs /home/nfs/public
这样进入/home/nfs/public 目录就可以看到里面的内容了。
***************
4.在客户机端创建用于挂载的目录。
sudo mkdir /mnt/share
sudo chmod 777 /mnt/share/
6.客户就可以加载了
sudo mount 172.16.5.140:/media/sda6/share /mnt/share
权限的说明:
http://wangxinpier.javaeye.com/blog/156805