NFS(Network FileSystem):网络文件系统,主要作用是访问远程主机上的文件系统。
1.安装nfs服务器
#1.检查软件安装 [root@jiang ~]# rpm -qa | grep rpcbind [root@jiang ~]# rpm -qa | grep nfs #2.安装必须软件 [root@zhu ~]# yum -y install rpcbind nfs-utils rpcbind :rpc程序的软件,在centos5以前软件名是portmap,centos6使用的是rpcbind nfs-utils:nfs服务所需的软件
2.启动nfs
[root@zhu ~]# service rpcbind start 正在启动 rpcbind: [确定] [root@zhu ~]# service nfs start 启动 NFS 服务: [确定] 启动 NFS mountd: [确定] 启动 NFS 守护进程: [确定] 正在启动 RPC idmapd: [确定]
3.配置nfs服务器,nfs的主配置文件是/etc/exports,该文件若不存在时,需手动创建。
/etc/exports 文件配置语法: [root@zhu ~]# cat /etc/exports /root/mypython *(rw,no_root_squash) www.jiang.com(ro,no_root_squash) /root/mysource 192.168.56.102(rw,no_root_squash) ################################################### #1.以行为单位,每行的第一部分,是分享出来的目录, 接下来是允许访问此目录的主机以及访问的权限。 #2.允许访问的主机可以是ip地址或域名,有以下几种写法: 192.168.56.102(rw,no_root_squash) 192.168.56.*(rw,no_root_squash) *(rw,no_root_squash) 192.168.56.0/24(rw,no_root_squash) #3.主机后面应直接跟相应的权限。主机和()之间不要有空格。
权限的种类:
#权限有下面几种: rw :读写 ro :只读 sync :数据会同步写入到内存与硬盘中, async :数据会先存于内存中, root_squash :使用nfs时,如果用户是root,则进行权限压缩,即把root用户在nfs上创建的文件 属组和属主修改为nfsnobody no_root_squash :使用nfs时,如果用户是root,不进行权限压缩,即root用户在nfs上创建的文件 属组和属主仍然是root(不安全,不建议使用) insecure:允许客户端从大于1024的TCP/IP端口连NFS服务器 secure:限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)
#上面这是常用的几种权限,还有其它的权限可以man exportfs 查看
权限总结:
[root@zhu ~]# cat /etc/exports /root/mypython *(rw,no_root_squash) /root/mysource 192.168.56.102(rw) /tmp *(rw)
1.针对nfs服务器上的/tmp 目录。
[root@jiang ~]# mount -t nfs 192.168.56.101:/tmp/ /root/zhuzhu/ [root@jiang ~]# cd zhuzhu/ [root@jiang zhuzhu]# ll 总用量 0 [root@jiang zhuzhu]# touch zhu.txt [root@jiang zhuzhu]# ll 总用量 0 -rw-r--r--. 1 nfsnobody nfsnobody 0 3月 27 2014 zhu.txt [root@jiang zhuzhu]# su zhu [zhu@jiang zhuzhu]$ mkdir zhu [zhu@jiang zhuzhu]$ ll 总用量 4 drwxrwxr-x. 2 nobody nobody 4096 3月 27 2014 zhu -rw-r--r--. 1 nfsnobody nfsnobody 0 3月 27 2014 zhu.txt
#1.使用root用户时,由于默认是root_squash权限,所以root用户创建的文件属主会是nfsnobody 使用zhu用户时,由于nfs服务器上并没有zhu用户,所以创建的文件属主为nobody #2.假如/tmp目录对zhu用户没有写的权限,即使在/etc/exports文件中开放写权限,那么客户端的zhu用户仍然不能写。
###############
nfs客户端选装的软件
yum -y install nfs-utils rpcbind
##########################################
#与nfs服务器有关的指令介绍:
当重新修改了/etc/exports 文件后,不需要重新启动nfs服务器,可以通过exportfs指令来管理。
exportfs [-avru] -a:全部卸载或挂载/etc/exports文件内的内容,通常与-r或-u结合使用 -r:重新挂载/etc/exports文件里的内容 -u:卸载某一目录 -v:将分享的目录显示到屏幕上。 #1.重新挂载/etc/exports内的设定 [root@zhu ~]# exportfs -arv exporting 192.168.56.102:/root/mysource exporting *:/tmp exporting *:/root/mypython 此时在客户端可以挂载在nfs服务器端分享出来的目录。 [root@jiang ~]# mount -t nfs 192.168.56.101:/tmp/ zhuzhu #2.全部卸载在/etc/exports文件中的内容 [root@zhu ~]# exportfs -au 此时在客户端不能挂载成功 [root@jiang ~]# mount -t nfs 192.168.56.101:/tmp/ zhuzhu mount.nfs: access denied by server while mounting 192.168.56.101:/tmp/ [root@zhu ~]# exportfs -ar #在服务器端重新加载 #此时在客户端便可挂载成功 [root@jiang ~]# mount -t nfs 192.168.56.101:/tmp/ zhuzhu #3.-v参数还可用来查看分享的目录的默认权限 [root@zhu ~]# exportfs -v /root/mysource 192.168.56.102(rw,wdelay,root_squash,no_subtree_check) /root/mypython <world>(rw,wdelay,no_root_squash,no_subtree_check) /tmp <world>(rw,wdelay,root_squash,no_subtree_check)
showmount 指令可以查看nfs服务器的分享信息,该指令是在客户端使用的。
showmount [-adehv] [host] -e:显示nfs服务器所分享出来的目录 [root@zhu ~]# showmount -e localhost #主机地址是localhost,所以在nfs服务器端执行 Export list for localhost: /tmp * /root/mypython * /root/mysource 192.168.56.102 [root@jiang ~]# showmount -e 192.168.56.101 #在客户端端查看,192.168.56.101 这台机器分享出的目录 Export list for 192.168.56.101: /tmp * /root/mypython * /root/mysource 192.168.56.102
本文出自 “浪淘沙” 博客,谢绝转载!