在linux中教你通过NFS实现文件共享

在linux中如何实现文件共享呢?其实很简单,它的共享是基于nfs的,nfs是网络文件系统,它能实现不同主机之间文件共享,就像windows的网上邻居!在linux中如何实现此功能呢?实现其功能也非常简单,只需通过安装nfs包(redhat默认安装),配置其相应的文件即可!

常用命令
     showmount -e NFS_SERVER:查看NFS服务器"导出"的各文件系统
     showmount -a NFS_SERVER:查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
     showmount -d NFS_SERVER:查看NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表
     exportfs -a:表示重新导出所有的文件系统,跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统
     exportfs -r:重新导出
     exportfs -u:取消导出
     exportfs -v:显示详细信息
     mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /PATH/TO/SOME_EXPORT:将共享的目录挂载至某处
编辑/etc/exports文件,要写明要共享的磁盘、文件、目录路径及共享的客户端列表,客户端列表有多个要使用空格分隔,其后必须要用小括号写上访问权限!
操作如下:
服务器端:IP=172.16.15.5
客户端:IP=172.16.15.4
共享的文件为/shared
服务器端配置:
# mkdir /shared
# touch /shared/gong
# vim /etc/exports
/shared 172.16.15.4(ro)
在启动nfs服务器时,要先启动rpc,应为nfs是基于rpc上工作的!
# service portmap start
# service nfs restart
共享成功,在客户端挂载即可!
客户端操作:
查看其NFS服务器共享的信息,并在172.16.15.4中挂载共享文件!
# showmount -e 172.16.15.5
# mount -t nfs 172.16.15.4:/shared /root/abc

访问属性(导出属性):
ro:只读              rw:读写
sync:同步          async:异步
root_squash:将root用户映射为来宾账户
no_root_squash:将root用户不映射为来宾账户
all_squash:将所有用户映射为来宾账号
anonuid,anongid:指定映射的来宾账号的UID和GID
如何将所有用户映射为来宾账号?创建一个用户作为来宾账号,在将共享文件的属主、属组均改为来宾账号。
# useradd -u 510 nfstest
# touch /shared/test
# chown nfstest.nfstest /shared/test
# vim /etc/exports
/shared 172.16.15.4(rw,all_squash,anonuid=510,anongid=510)
# exportfs -ra
# showmount -e 172.16.15.5
客户端查看结果:

客户端实现开机自动挂载:
编辑/etc/fstab添加要挂载的项;
# vim /etc/fstab
172.16.15.5:/shared /root/abc nfs defaults,_rnetdev 0 0
说明:_rnetdev:开机时,如果挂载错误,可以跳过此挂载!

你可能感兴趣的:(nfs)