在Linux NFS服务器上实现磁盘配额<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
平时在使用linux的NFS服务器时,只是为了完成实验,很少关注综合性的操作,这次咱们一起来做个综合实验。实验分成二个部分,NFS和磁盘配额
一.NFS部分
实验环境:Linux RHEL5+Windows server 2003
实验设备:VMware6.5
实验过程:
1.在RHEL5上配置NFS,共享目录为“/software”,权限为“<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />777”。
#mkdir /software //创建共享目录software
#vi /etc/exports //编辑NFS配置文件
/software *(sync,rw) //设置共享目录为software,允许所有IP访问,读写权限
#chmod 777 /software //设置software的权限为所有人读写执行
#chkconfig --level 35 nfs on //将nfs服务设置为开机时启动 注:portmap默认为启动
#service nfs start //启动nfs服务 注:portmap默认为启动
# showmount –e //查看当前服务器的输出目录
2.在Linux和Windows中挂载NFS服务器的共享目录software
#mount –t nfs 172.16.100.254:/software /mnt //在客户端的Linux中挂载software到mnt下
Windows下挂载需要Omni-Lite软件实现,这里略过……
到这为止,Linux NFS服务器搭建完成,客户端完成访问,实验完成。
实验问题:客户端可以随意创建文件,无法实现控制。
二.磁盘配额部分
1. 修改/etc/fstab文件,并重起。
#vi /etc/fstab
LABEL=/ / ext3 defaults,usrquota,grpquota 1 1 //加入“,usrquota,grpquota”
#reboot
2. 使用quotacheck命令创建用户配额文件,并生成用户配额文件aquota.user和组配额文件aquota.group
#quotacheck –cmug / //在根下生成用户和组的配额文件
#quotacheck –mfvug / //检测根文件系统中配额文件和实际配额状态的一致性
#quotaon / //激活配置文件
3. 编辑用户的磁盘配额文件
#edquota –u user
Disk quotas for user user (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 72 0 0 9 0 0
现在的设置只能对本地用户起作用,而对客户端访问无法实现限制,因为Windows客户端用户创建文件的宿主名为nfsnobody,Linux客户端用户创建文件的宿主名为4294967294。由于nfsnobody用户在NFS服务器中含有该用户,所以直接给该用户设置即可。可是4294967294这个该怎么办呢?
解决办法如下:
修改exports文件,实现服务器和客户端用户映射。
1. #vi /etc/exports
/software *(sync,all_squash,rw) //添加all_squash项
注:选项说明
u rw:可擦写的权限;
u ro:只读的权限;
u no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
u root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份;
u all_squash:不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody 啦!
u anonuid:前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
u anongid:同 anonuid ,但是变成 group ID 就是了!
u sync:资料同步写入到内存与硬盘当中;
u async:资料会先暂存于内存当中,而非直接写入硬盘!
2. 重新输出共享目录
#exportfs –rv //重新读取exports文件中的设置
3. 对用户nobody设置,就等于对所有来自客户端的用户做限制
#edquota –u nobody
其他的操作需要大家进一步扩展了,本次内容结束。
转载于:https://blog.51cto.com/farmfun/166038