预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux高级权限管理:ACL用法简介 来源:ChinaUnix博客 前段时间,在Linux上设置一个目录的访问权限时,发现通过简单的chmod操作不能满足自己的需求,问题:如果用root帐号创建了一个目录DIR,有A,B,C,D四组用户,我想给A组用户读写执行的权限(rwx),给B组用户读写的权限(rw-),给C组用户读的权限(r--),不给D任何权限(---),要如何实现?UGO的局限性通常大家熟悉的是UGO的权限管理方式(User,Group,Other),即对一个文件的所有者,所属组和其他用户来分别设置该文件的读写执行权限。对于简单应用来说,这种粗粒度的权限管理方式已经够用了,设置起来也很方便。然而,当我们需要对某个文件进行较复杂详细的权限设置时,UGO方式就显示出了其局限性。如,对于本文开始所提出的问题,需要为四组不同用户设置对目录DIR的不同访问权限,而UGO方式只能对目录的所有者,所属组,以及其他用户设置不同权限,即最多只能设置3种不同权限,还不能对多个不同用户分别设置。ACL则很好的满足了这样的需求。ACL简介ACL,全称AccessControlList,即文件/目录的访问控制列表,可以针对任意指定的用户/组分配rwx权限。现在主流的商业Unix系统都支持ACL。FreeBSD也提供了对ACL的支持。Linux在这个方面也不会落后,从2.6版内核开始支持ACL[1]。顾名思义,ACL将用户对一个文件访问权限就像是放在了一个列表里,列表的每一项分别对应了一个或一组具体用户对该文件的特定访问权限。这就使任意的访问权限管理成为了可能。下面我们来看看如何通过ACL进行详细的文件访问权限管理。检查ACL包安装情况首先检查你的Linux系统的核心是否有支持ACL的功能。因为Linux系统并不是每一个版本的核心都有支持ACL的功能,而且即使在kernel中已加进了ACL的支持,也不一定已经自动启用。最简单的方法就是检查系统目前的核心能否支持,下面是我在ubuntu8.04上面查看boot/config文件的结果:zhou@zhou-desktop:~$uname-aLinuxzhou-desktop2.6.24-23-generic#1SMPThuFeb515:00:25UTC2009i686GNU/Linuxzhou@zhou-desktop:~$cat/boot/config-2.6.24-23-generic|grep-iaclCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_FS_POSIX_ACL=yCONFIG_GENERIC_ACL=yCONFIG_JFS_POSIX_ACL=yCONFIG_NFSD_V2_ACL=yCONFIG_NFSD_V3_ACL=yCONFIG_NFS_ACL_SUPPORT=mCONFIG_NFS_V3_ACL=yCONFIG_REISERFS_FS_POSIX_ACL=yCONFIG_TMPFS_POSIX_ACL=yCONFIG_XFS_POSIX_ACL=y如果看到该文件里包含了以上多个POSIX_ACL=y的行,说明ACL已经编译到了内核中,如ext2,ext3等文件系统已经能够支持ACL功能。在基于Debian的系统,如ubuntu中,可以使用dpkg命令来查看是否已经安装了acl相应软件包。zhou@zhou-desktop:~$dpkg-l|grep-iacliiacl2.2.45-1Accesscontrollistutilitiesiilibacl12.2.45-1Accesscontrollistsharedlibrary开启ACL选项即使系统已经支持了ACL,通常系统是不会自动开启acl选项的,因此需要手动重新加载文件系统,开启acl选项:$mount-oremount,acl/后面的/是硬盘分区,-o后面的两个选项,分别表示重新加载根分区,和开启acl选项。当然,在重新加载文件系统时也可以指定文件系统类型和路径:$mount-text3-oremount,acl/home若没有提示错误,则表示重新加载成功。如果希望系统启动时自动开启ACL选项,可以在/etc/fstab文件中进行设置,找到希望开启ACL选项的文件系统对应行,在选项栏中加入",acl",保存退出。在下次启动系统时则将自动开启ACL选项。UUID=32308755-b5ed-426b-a49c-cc8951aa1eb3/ext3relatime,acl,errors=remount-ro0如上行中的红色部分,表明在根文件系统上自动开启ACL选项。ACL设置ACL的主要命令有2个:getfacl和setfacl,下面分别对其进行