要启用ACL,需内核提供ACL支持和安装ACL管理工具。现在的2.6内核都提供ACL支持,在编译内核时只要在file systems分支下,把Ext2 POSIX Access Control Lists或Ext3 POSIX Access Control Lists选中就可以了。用以下命令挂接硬盘启用文件系统ACL。
[code]debian:~# mount -t ext2 -o acl /dev/hda1 /mnt/hda1[/code]
我们也可把选项写到/etc/fstab文件中,在需启用acl的分区选项包含acl参数。
ACL有两种,一种是存取ACL(access ACLs),针对文件和目录设置访问控制列表。一种是默认ACL(default ACLs),只能针对目录设置。如果目录中的文件没有设置ACL,它就会使用该目录的默认ACL。要设置ACL,首先要安装管理工具,它们分别是getfacl和setfacl,在debian中只要安装acl软件包即可。
[code]debian:~# apt-get install acl[/code]
setfacl工具可为文件和目录ACL,命令格式如下:
[code]setfacl -m
rules的格式如下,多条规则间可用逗号分隔。
u:uid:perms #为用户设置ACL,perms为r、w、x的组合
g:gid:perms #为组设置ACL
o:perms #为其它组设置ACL
m:perms #设置有效权限屏蔽
下面是setfacl的实例:
[code]debian:~# setfacl -m u:jims:rw testfile.txt[/code]
#-m选项表示添加或修改文件或目录的权限访问列表
[code]debian:~# setfacl -x u:jims:rw testfile.txt[/code]
#-x选项表示删除文件或目录的访问列表
要设置默认的ACL,只在rules前加一个d:,以表示指定一个目录,如:
[code]debian:~# setfacl -m d:o:rx /data[/code]
getfacl用以显示文件或目录的ACL,如:
[code]debian:getfacl debian.xml
# file: debian.xml
# owner: jims
# group: jims
user::rwx
group::r--
other::r--[/code]
tar和dump工具不能备份ACL文件,如果我们要备份ACL文件系统,可以使用star工具。另外,samba可通过--with-acl-support编译选项支持ACL。


nxfte 于 2006-08-26 16:25:26发表:
不错,支持个
cxtt228 于 2006-08-25 18:36:22发表:
这么好的东东没人支持吗