欢迎来到天天文库
浏览记录
ID:42770210
大小:46.50 KB
页数:11页
时间:2019-09-21
《Linux下ACL详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ACL简介用户权限管理始终是Unix系统管理中最重要的环节。大家对Linux/Unix的UGO权限管理方式一定不陌生,还有最常用的chmod命令。为了实现一些比较复杂的权限管理,往往不得不创建很多的组,并加以详细的记录和区分(很多时候就是管理员的噩梦)。可以针对某一个用户对某一文件指定一个权限,恐怕管理员都期待的功能。比如对某一个特定的文件,用户A可以读取,用户B所在的组可以修改,惟独用户B不可以……。于是就有了IEEEPOSIX1003.1e这个ACL的标准。所谓ACL,就是AccessContr
2、olList,一个文件/目录的访问控制列表,可以针对任意指定的用户/组分配RWX权限。现在主流的商业Unix系统都支持ACL。FreeBSD也提供了对ACL的支持。Linux在这个方面也不会落后,从2.6版内核开始支持ACL。准备工作支持ACL需要内核和文件系统的支持。现在2.6内核配合EXT2/EXT3,JFS,XFS,ReiserFS等文件系统都是可以支持ACL的。用自己工作用的物理分区体验ACL,总是不明智的行为。万一误操作导致分区的损坏,造成数据的丢失,损失就大了。作一个loop设备是个安全
3、的替代方法。这样不需要一个单独的分区,也不需要很大的硬盘空间,大约有个几百KB就足够进行我们的体验了。OK,下面我使用FedoraCore5和Ext3文件开始对Linux的ACL的体验。首先创建一个512KB的空白文件:[root@FC3-vmopt]#ddif=/dev/zeroof=/opt/testptncount=512512+0recordsin512+0recordsout和一个loop设备联系在一起:[root@FC3-vmopt]#losetup/dev/loop0/opt/test
4、ptn创建一个EXT2的文件系统:[root@FC3-vmopt]#mke2fs/dev/loop0mke2fs1.35(28-Feb-2004)max_blocks262144,rsv_groups=32,rsv_gdb=0Filesystemlabel=OStype:LinuxBlocksize=1024(log=0)Fragmentsize=1024(log=0)32inodes,256blocks12blocks(4.69%)reservedforthesuperuserFirstdatab
5、lock=11blockgroup8192blockspergroup,8192fragmentspergroup32inodespergroupWritinginodetables:doneWritingsuperblocksandfilesystemaccountinginformation:doneThisfilesystemwillbeautomaticallycheckedevery30mountsor180days,whichevercomesfirst.Usetune2fs-cor-i
6、tooverride.挂载新建的文件系统(注意mount选项里的acl标志,我们靠它来通知内核我们需要在这个文件系统中使用ACL):[root@FC3-vmopt]#mount-orw,acl/dev/loop0/mnt[root@FC3-vmopt]#cd/mnt[root@FC3-vmmnt]#lslost+found现在我已经得到了一个小型的文件系统。而且是支持ACL的。并且即使彻底损坏也不会影响硬盘上其他有价值的数据。可以开始我们的ACL体验之旅了。体验1-ACL的基本操作:添加和修改我首先
7、新建一个文件作为实施ACL的对象:[root@FC3-vmmnt]#touchfile1[root@FC3-vmmnt]#ls-lfile1-rw-r--r--1rootroot7Dec1100:28file1然后看一下这个文件缺省的ACL,这时这个文件除了通常的UGO的权限之外,并没有ACL:[root@FC3-vmmnt]#getfaclfile1#file:file1#owner:root#group:rootuser::rw-group::r--other::r-*注意:即使是不支持ACL的
8、情况下,getfacl仍然能返回一个这样的结果。不过setfacl是不能工作的。下面添加几个用户和组,一会我将使用ACL赋予他们不同的权限:[root@FC3-vmmnt]#groupaddtestg1[root@FC3-vmmnt]#useraddtestu1[root@FC3-vmmnt]#useraddtestu2[root@FC3-vmmnt]#usermod-Gtestg1testu1现在我们看看testu1能做什么:[root@FC3-vmmnt]#sut
此文档下载收益归作者所有