对于文件系统
我们可以将其大致分为三类
本地文件系统 :诸如EXT3/4 swap FAT32 NTFS
伪文件系统 (事实上是内存空间)
诸如 /proc /sys等
网络文件系统 -----网络存储空间
NFS(NETWORK FILE System)
与nfs相关的主要软件包
nfs-utils-1.2.3-39.el6.x86_64
rpcbind-0.2.0-11.e16.x86_64 (似乎这两个包默认是装好的)
系统服务脚本
nfs rpcbind
试验如下
1检查是否已安装上述的两个包
2编辑配置文件 vim /etc/exports 其中
其中需要着重表明的是 共享文件路径 客户端地址范围 以及相关参数
参数包括rw,ro(可读可写)
sync,async:同步写,异步写入
no_root_squash:保留来自客户端的root权限
all_squash客户端权限都降为nfsmobody
3服务器启动rpcbind 与nfs ,客户端同过showmount -e 服务器地址查看
4客户端使用nfs 客户端(即挂载nfs共享目录)我们需要先在客户端开启rpc(远程过程调用)
5建立远程nfs的挂载点将nfs挂载过来
6通过更改参数查看nfs的变化
(1)将no_root_squash 与all_squash同时设置上 看看结果,首先发现在客户端这边无法修改/nfs的权限怀疑此时已被降级为nfsnobody
为了验证猜想,在服务器一端将/nfsshare修正为777的权限。用root的身份进入目录创建wenjiani_am_root , 通过ll查看(此时已被降级为nfsbobody)
取消所有的exports中的参数设置。客户端创建文件by_root 利用普通用户登陆,并依次创建文件by_chris 与文件by_kk此时发现意外情况
为什么chris创建的文件属主为chris属组为nfsnobody 而kk创建的两个文件属主与属组都是nfsnobody ?
这些普通用户是否和root一样也被降级了?
=====================================================================================================
以为联想到1root用户在使用no_root_squash之后能够在客户端保留它的root权限2对比chrisyukk的不同发现chris在客户端也有而kk没有 因此猜测在没有启用all_squash时客户端所创建的文件所获得的权限可能和服务器上与之同名的用户有关(并且依据是uid与gid)为了进一步验证,在服务器端新建用户nfstest并为它指定uid和gid为505
如果能够满足我们猜想那么我在客户机上新建一个用户test把它uid指定为505 gid指定为500
那么他创建的文件将显示属主为nfstest属组为chris
利用test的身份进入/nfs创建文件夹
似乎并没有达到目标以为属主出现了故障
可是就在第二次重新启动服务器与客户机后,再打开奇迹发生了
猜测应该与同步写入有关或者服务器需要重新启动才能识别新的用户id