最近在了解一些服务权限的设置,突然就被这个nfs服务的权限给绊住了。当你挂载上服务器上的共享目录
时,却无法访问里面的一些内容。内心满满的忧桑。。。经过努力奋斗几分钟终于搞明白了。
无法访问的原因:因为NFS服务是没有用户验证功能的,所以服务器会将客户端的身份进行映射,将其映射为匿名用户nfsnobody。也就是说,当你用root用户去访问共享目录时,其实你已经变成了服务器端的匿名用户nfsnobodoy了,这样,你还有权限访问nfsnobody没有权限的文件吗?当然是不行的。
当然,解决的方法是有的。嘿嘿。。。
通过建立UID和文件所有者UID相同的用户去访问。也就是伪造文件所有者UID去欺骗nfs服务器
一、挂载服务器的共享目录到本地,并查看挂载结果
二、进入挂载目录,查看文件。
这时我们看到没有权限去访问这个文件,再来看一下这个文件的详细信息。
这里我们可以看到文件的所有者UID,有了UID,那么我们开始伪造UID相同的用户
三、在客户端伪造UID相同的用户
我们新建一个用户,指定UID为1003,并设置密码
再来看一下这个文件的详细信息
我们 可以看到,文件的所有者已经变成了user。好,那么我们测试一下能不能访问这个文件呢?
四、测试文件访问效果
在共享目录中切换到普通用户user,并查看文件内容
可以看到,文件的内容已经显现出来。
有人说,你怎么知道远程服务器文件的所有者的名字叫做user。在这里也说一下,其实我也不知道名字是user,因为在linux系统中,判别用户的时候是通过用户的UID来判断的,并不是用户名。
这个就是服务器上这个文件的详细信息,可以看到其实名字是user1的,名字并不相同。所以在我们建立用户的时候只需要将用户的UID和服务器上文件拥有着相同即可!!!
转载于:https://blog.51cto.com/12332766/2116636