现在的位置: 首页 > Linux > Linux基础 > 正文
NFS的配置和使用
2013年03月11日 Linux基础 ⁄ 共 1966字 NFS的配置和使用已关闭评论 ⁄ 被围观 14,071 views+

一、安装:

[barlow@web01 ~]# yum -y  install nfs-utils rpcbind

二、权限说明: NFS文件系统的权限主要由两部分控制:用户UID和文件/etc/exports 即当客户端用户的UID在客户端的存在的时候,直接使用服务器端该UID对NFS系统所拥有的权限(root在一些特别的情况下例外,后面会说到)。 /etc/exports文件可以对NFS系统权限进行集中的管控:

[barlow@web01 ~]#vim /etc/exports
/home/public 192.168.8.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
[分享目录] [第一部主机(权限)] [可用主机名] [可用通配符]

至于主机名称的设定主要有几个方式:

  • 可以使用完整的IP 或者是网段,例如192.168.8.10 或192.168.8.0/24 ,或192.168.8.0/255.255.255.0 都可以
  • 也可以使用主机名称,但这个主机名称必须要在/etc/hosts 内,或可使用DNS 找到该名称才行啊!反正重点是可找到IP 就是了。如果是主机名称的话,那么他可以支持通配符,例如* 或? 均可接受。

至于权限方面(就是小括号内的参数) 常见的参数则有:

参数值 内容说明
rw  ro 该目录分享的权限是可读写(read-write) 或只读(read-only),但最终能不能读写,还是与文件系统的rwx 及身份有关。
sync  async sync 代表资料会同步写入到内存与硬盘中,async 则代表资料会先暂存于内存当中,而非直接写入硬盘!
no_root_squash  root_squash 用户端使用NFS 档案系统的帐号若为root 时,系统该如何判断这个帐号的身份?预设的情况下,用户端root 的身份会由root_squash 的设定压缩成nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放用户端使用root 身份来操作服务器的档案系统,那么这里就得要开no_root_squash 才行!
all_squash 不论登入NFS 的使用者身份为何, 他的身份都会被压缩成为匿名使用者,通常也就是nobody(nfsnobody) 啦!
anonuid  anongid anon 意指anonymous (匿名者) 前面关于*_squash 提到的匿名使用者的UID 设定值,通常为nobody(nfsnobody),但是你可以自行设定这个UID 的值!当然,这个UID 必需要存在于你的/etc/passwd 当中!anonuid 指的是UID 而anongid 则是群组的GID 啰。

三、配置: 1、准备工作:

[barlow@web01 ~]# mkdir /home/public                                      ##建立一个用于共享的目录 [barlow@web01 ~]#chown barlow  /home/public                         ##将目录所有者改为barlow用户 [barlow@web01 ~]#service nfs start                                          ##启动nfs服务

2、案例一:让root保持原有的root权限

[barlow@web01 ~]# vim /etc/exports
/home/public     *(rw,no_root_squash)

# 任何人都可以用我的 /home/public ,用通配符来处理主机名,重点在 no_root_squash

3、案例二:同一目录,不同主机权限不一样

[barlow@web01 ~]# vim /etc/exports
/home/public 192.168.8.0/24(rw) *(ro)
#继续累加在后面,注意,我将主机与网域分为两段(用空格隔开)

4、案例三:给单一主机使用

[barlow@web01 ~]# vim /etc/exports
/home/public 192.168.100.10(rw)
#只有192.168.8.10这个主机可以访问

我这里是关闭了SELinux和防火墙iptables的,否则也会有问题
NFS的防火墙配置特别难搞,因为其连接端口处了111和2049是固定的外,其他还会产生很多非固定的端口,因此没有很好的办法通过iptables配置来实现。
不过还好在RHEL/CentOS 6.x下,增加了一个可以配置固定端口的办法,其定义在/etc/sysconfig/nfs中,这个文件配置很多,但一般均不需调整,之需要调整端口相关的即可,具体如下:

[barlow@web01 ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=1001

LOCKD_TCPPORT=30001

LOCKD_UDPPORT=30001

MOUNTD_PORT=1002

抱歉!评论已关闭.

×