Linux学习——NFS自动挂载
2016-07-10 19:09
316 查看
紧接上一篇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权限的重要原因。
这里我删除上一篇中的nfs目录,并新建一个目录/share/disk,然后对该目录进行操作。
编辑/etc/exports文件,将上面创建的目录设置为nfs。
重新启动portmap和nfs服务,注意顺序。
通过showmount -e 可以看到在服务器上设置的nfs目录,然后将该目录的所有权分配给nfsnobody,这样在客户端上其他用户的操作都是在nfsnobody下执行,也就能进行写入、删除等操作。
在服务器上设置nfs和portmap服务开机启动。
在客户端上只需要设置portmap服务开机启动即可。
使用showmount可以看到服务器上设置的nfs目录,通过mount命令进行挂载。
进入挂载的目录下,尝试创建文件和目录,能够成功过执行,说明权限设置没有问题。使用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将被压缩到所指定的用户与组;
修改/etc/fstab文件,添加nfs挂载,如上图,保存退出。
重启服务器端server171。
重启客户端server172。
两台Linux启动后,使用ssh到服务器server171上,使用showmount -e可以看到设置的nfs目录,当然也可以使用showmount -a查看连接该nfs的主机。
ssh到客户端server172上,可以看到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权限的重要原因。
这里我删除上一篇中的nfs目录,并新建一个目录/share/disk,然后对该目录进行操作。
编辑/etc/exports文件,将上面创建的目录设置为nfs。
重新启动portmap和nfs服务,注意顺序。
通过showmount -e 可以看到在服务器上设置的nfs目录,然后将该目录的所有权分配给nfsnobody,这样在客户端上其他用户的操作都是在nfsnobody下执行,也就能进行写入、删除等操作。
在服务器上设置nfs和portmap服务开机启动。
在客户端上只需要设置portmap服务开机启动即可。
使用showmount可以看到服务器上设置的nfs目录,通过mount命令进行挂载。
进入挂载的目录下,尝试创建文件和目录,能够成功过执行,说明权限设置没有问题。使用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将被压缩到所指定的用户与组;
修改/etc/fstab文件,添加nfs挂载,如上图,保存退出。
重启服务器端server171。
重启客户端server172。
两台Linux启动后,使用ssh到服务器server171上,使用showmount -e可以看到设置的nfs目录,当然也可以使用showmount -a查看连接该nfs的主机。
ssh到客户端server172上,可以看到nfs已经自动挂载上了。
进入目录进行查看,并进行创建文件、删除文件或目录等操作,确认权限也没有问题。至此,权限问题得到解决,nfs自动挂载也得以实现。
相关文章推荐
- linux arm移植触摸屏tslib
- Centos6.5安装mysql不能启动,应该安装mysql-server
- Linux服务器,PHP的10大安全配置实践
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
- Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
- Linux进程核心调度器之主调度器--Linux进程的管理与调度(十九)
- Linux环境下查看jar包的归档目录
- Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)
- Linux监控命令
- centos6.6下编译安装PostgreSQL9.4.1、配置phppgadmin
- Linux学习——NFS服务介绍及安装配置方法
- linux下安装jdk
- LVM逻辑盘扩容实例
- 能ping通Linux但是ssh连不上问题解决方法
- 微软说,将“为 Linux 用户带来令人兴奋的新闻”
- 微软说,将“为 Linux 用户带来令人兴奋的新闻”
- centos安装vim及其配置参考
- ELK 初探
- Centos系统环境下Redmine部署安装手册