RHCE--NFS服务的搭建

NFS服务的搭建
1.首先下载NFS与RPC程序
RPC主程序:rpcbind
NFS主程序:nfs-utils
[root@localhost ~]# yum install rpcbind
[root@localhost ~]# yum install nfs-utils
2.NFS的配置文件默认位置为/etc/exports。格式为:
共享目录 主机名(权限)
共享目录即为服务器要共享的目录,主机名为可以访问该目录的客户端的IP地址
主机名可以为:网段,具体IP地址,*(*代表所有人都可以访问)
权限:
权限除了可以限定文件的属性外,还可以指定客户端所创建的文件的所属者和所属组
参数值 说明
rw
ro
  该目录共享的权限是可读写还是只读,但最终能否读写,还是与文件系统的rwx有关
sync
async
  sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squash
root_squash 若客户端在共享目录里创建的文件的所属者和所属组是root用户和root组,那么显示文件的属主和属组时有以下两种情况:
no_root_squash表示,文件的所属者和所属组是root用户和root组;
root_squash表示将root用户和组映射为匿名用户和组(默认设置)。
all_squash
no_all_squash
  all_squash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组
no_all_squash:客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认设置)
anonuid=
anongid= 将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody)

例如:/data *(ro) //表示将服务器的/data目录共享给任何人,权限为仅读
3.客户端的挂载
在nfs中,客户端是通过将服务端的目录挂载在本地的目录下,来实现访问的
例如:[root@localhost ~]# mount 172.24.8.128:/data /mnt //将服务端172.24.8.125提供的/data 目录挂载到自己的/mnt下。所以当客户访问自己的/mnt时,就相当于直接访问的服务端的 /data
4.实例举例
架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料;
2、开放/nfs/upload目录,该目录为172.24.8.0/24网段的主机的数据上传目录,并将所有该网段主机上传文件的所属者和所属组映射为nfs-upload,其UID和GID为2001;
3、将/home/tom(该目录为uid=1111,gid=1111的tom用户的家目录)目录仅共享给172.24.8.129这台主机上的jerry用户,jerry对该目录具有访问、新建和删除文件的权限。

服务端
[root@localhost ~]# vim /etc/exports
/nfs/shared *(ro)
/nfs/upload 172.24.8.0/24(rw,all_squash,anonuid=2001,anongid=2001)
/home/tom 172.24.8.129(rw)
[root@localhost ~]# mkdir -p /nfs/{shared,upload}
[root@localhost nfs]# useradd -u 1111 tom
[root@localhost nfs]# id tom
uid=1111(tom) gid=1111(tom) 组=1111(tom)
[root@localhost nfs]# exportfs -r
[root@localhost ~]# showmount -e 172.24.8.128
Export list for 172.24.8.128:
/nfs/shared *
/nfs/upload 172.24.8.0/24
/home/tom 172.24.8.129
[root@localhost nfs]# chmod o+w /nfs/upload/
[root@localhost nfs]# chmod 700 /home/tom/ //这个权限使得仅Jerry用户可以看,读,改该文件 因为只有Jerry和tom的UID和GID相同,所以当Jerry访问服务端时,服务端会将Jerry当成tom,jerry就会拥有和tom一样的权限
客户端测试
[root@localhost ~]# mkdir -p /server/{shared,upload,tom}
[root@localhost ~]# mount 172.24.8.128:/nfs/shared /server/shared/
[root@localhost ~]# mount 172.24.8.128:/nfs/upload /server/upload/
[root@localhost ~]# mount 172.24.8.128:/home/tom /server/tom/
[root@localhost ~]# ll /server/shared/
total 0
[root@localhost ~]# touch /server/upload/file
[root@localhost ~]# ll /server/tom/
ls: cannot open directory /server/tom/: Permission denied
[root@localhost ~]# useradd -u 1111 jerry
[root@localhost ~]# su - jerry
[jerry@localhost ~]$ ll /server/tom/
total 0
[jerry@localhost ~]$ touch /server/tom/jerry
[jerry@localhost ~]$ ll /server/tom/
total 0
-rw-rw-r–. 1 jerry jerry 0 Mar 28 16:08 jerry
5.autofs自动挂载
在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在/etc/rc.d/rc.local中设置开机时自动挂载(/etc/rc.d/rc.local文件中写入的命令,在每次启动系统用户登录之前都会执行一次);也可以在登录系统后手动利用mount来挂载。
由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时。为了解决这样的问题,就出现了下面的想法:
1、当客户端在有使用NFS文件系统的需求时才让系统自动挂载。
2、当NFS文件系统使用完毕后,让NFS自动卸载。
于是就产生了autofs这个服务。
 
autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。
autofu仅仅作用在客户端上,与服务端无关
首先,要下载相关软件:
[root@client ~]# yum install autofs -y
它的配置文件默认在 /etc/auto.master下,配置的格式如下:
[root@localhost ~]# vim /etc/auto.master
/nfs /etc/auto.nfs
这句配置可以理解为:当访问本地的/nfs时,系统会自动去查看并执行/etc/auto.nfs文件。
这里的auto.nfs文件并不是固定的,可以自行定义文件名和名称

随后就要配置/etc/auto.nfs文件了,它的格式如下:
shared 192.168.214.125:/nfs/shared
upload 192.168.214.125:/nfs/upload
tom 192.168.214.125:/home/tom
other 192.168.214.125:/data
这些语句可以理解为:当访问/nfs/shared 时,系统会自动挂载到192.168.214.125:/nfs/shared下。 以此类推
总之:/nfs是被检测地文件,其下可以包含多个挂载到服务器地文件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值