Linux学习——NFS自动挂载

紧接上一篇Linux学习——NFS服务介绍及安装配置方法,这次实现nfs自动启动并在客户端自动完成挂载操作。

查看nfs服务器端nfs的配置,通过查看/var/lib/nfs/etab文件可以看到nfs目录及详细的权限设置等。
默认就有sync,wdelay,hide 等等,no_root_squash 是让root保持权限,root_squash 是把root映射成nobody,no_all_squash 不让所有用户保持在挂载目录中的权限。所以,root建立的文件所有者是nfsnobody。
我们看到nfs默认的uid和gid都是65534,这个系统中一个nfsnobody的用户ID一致,因此这也是能实现通过nfsnobody来管控nfs权限的重要原因。
Linux学习——NFS自动挂载_第1张图片
Linux学习——NFS自动挂载_第2张图片
这里我删除上一篇中的nfs目录,并新建一个目录/share/disk,然后对该目录进行操作。
编辑/etc/exports文件,将上面创建的目录设置为nfs。
Linux学习——NFS自动挂载_第3张图片
重新启动portmap和nfs服务,注意顺序。
Linux学习——NFS自动挂载_第4张图片
通过showmount -e 可以看到在服务器上设置的nfs目录,然后将该目录的所有权分配给nfsnobody,这样在客户端上其他用户的操作都是在nfsnobody下执行,也就能进行写入、删除等操作。
Linux学习——NFS自动挂载_第5张图片
在服务器上设置nfs和portmap服务开机启动。
在客户端上只需要设置portmap服务开机启动即可。
Linux学习——NFS自动挂载_第6张图片
使用showmount可以看到服务器上设置的nfs目录,通过mount命令进行挂载。
Linux学习——NFS自动挂载_第7张图片
进入挂载的目录下,尝试创建文件和目录,能够成功过执行,说明权限设置没有问题。使用ll命令查看文件属性,发现在客户端上创建的文件属主和属组都是nfsnobody。

普通用户写入文件时就是自己的名字,这也就保证了服务器的安全性。

  关于权限的分析

  1. 客户端连接时候,对普通用户的检查

    a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;

    b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;

    c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;

  2. 客户端连接的时候,对root的检查

    a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;

    b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;

    c. 如果没有明确指定,此时root用户被压缩为nfsnobody;

    d. 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;


Linux学习——NFS自动挂载_第8张图片

修改/etc/fstab文件,添加nfs挂载,如上图,保存退出。

Linux学习——NFS自动挂载_第9张图片

重启服务器端server171。

Linux学习——NFS自动挂载_第10张图片

重启客户端server172。

Linux学习——NFS自动挂载_第11张图片

两台Linux启动后,使用ssh到服务器server171上,使用showmount -e可以看到设置的nfs目录,当然也可以使用showmount -a查看连接该nfs的主机。

Linux学习——NFS自动挂载_第12张图片

ssh到客户端server172上,可以看到nfs已经自动挂载上了。

Linux学习——NFS自动挂载_第13张图片

进入目录进行查看,并进行创建文件、删除文件或目录等操作,确认权限也没有问题。至此,权限问题得到解决,nfs自动挂载也得以实现。



你可能感兴趣的:(Linux,基础)