原创日志

Linux的新权限机制 POSIX ACL,常用命令:setfacl 和 getfacl

[ 2010-11-19 10:41:12 | 作者: admin ]
字号: | |
p.s. 常用的命令模板如下,用来赋予用户目录的读写权限
-m表示增加和修改权限
-d为设置为缺省权限
-R则遍历所有子目录
setfacl -m u:user1:rwx -d -R /home/www1
而对于单个文件,非目录情况,命令如下
setfacl -m u:user1:rwx /home/www1/index.php

查看权限
getfacl /home/www1/
getfacl /home/www1/index.php




详细的ACL权限机制说明

为针对Unix系统权限机制的不足,一个名为POSIX ACL (Access Control List) 的全新权限机制诞生了,目的就是为了给各Unix系统之间制定一个兼容的ACL标准,使得各操作系统之间使用统一的接口。ACL为现有权限机制的延伸,在现有机制的三个基本设定(owner、group、other)的基础上加入了对某指定使用者或群组的存取权限设定。

在Linux Kernel 2.6上已经正式支持POSIX ACL,常用的档案系统(如:ext2,ext3,xfs,jfs以及ReiserFS)都能使用ACL。当然,在编译kernel时需要启动ACL。

相关的kernel option:
CONFIG_FS_POSIX_ACL
CONFIG_EXT3_POSIX_ACL
CONFIG_EXT2_POSIX_ACL

虽然kernel中已支持POSIX ACL,但是它并不会自动启动,我们必须在挂载档案系统时指明要使用的ACL。
可以在/etc/fstab中设置选项:

添加上acl权限
vim /etc/fstab
UUID="****************" /mnt/data   ext4 defaults,acl 0 0

/dev/sda1          /mnt/data2    ext4  defaults,acl  0 0
附:挂载的时候,我们尽量都采用第一各种,因为这样挂载起来比较安全,具体的uuid可以使用命令来查看
blkid //查看本地硬盘所有分区的UUID
attachments/201307/03_195449_2012100723175247.jpg




ACL常用命令说明

setfacl --help
attachments/201307/03_194947_2012100722574488.jpg



我们使用getfacl指令来查看一个文件或目录的ACL,使用setfacl指令来更改一个文件或目录的ACL。
其中setfacl指令的用法: setfacl option rules files
option:
-m 新增或修改ACL中的规则
-x 移出ACL中的规则

rules:
user:(uid/name):(perms) 指定某位使用者的权限
group:(gid/name):(perms) 指定某一群组的权限
other::(perms) 指定其它使用者的权限
mask::(perms) 设定有效的权限屏蔽

注:perms即r(read)、 w(write)、x(execute)。user、group、other、mask可以简写为:u , g , o , m。

例子:设定一文件a.txt,其创建用户alen,群组 com,现在要让用户alen和linda都能读写操作,群组com和proj只能读取,其它用户无任何权限操作。

命令如下:
setfacl -m user::rw, user:linda:rw, group::r, group:proj:r, o::- a.txt


ACL分为两种类型:存取型ACL(Access ACL)和预设型ACL(Default ACL),之前所介绍的就是存取型ACL。其中:存取型ACL可用于文件或目录,它决定该文件或目录本身的使用权限;
预设型ACL只能用于目录,它决定了该目录下新建的文件或目录的ACL。

要设定预设型ACL只需在每个规则前加上"default:" 。
例如: setfacl -m default:user::rw /home/alex
或简写为: setfacl -m d:u::rw /home/alex
或写为: setfacl -m u::rw -d /home/alex


例子:要设定/home/alex的预设型ACL为:使用者 alex和sam能读写,群组只具有读的权力。

命令如下: setfacl -m d:u::rw,d:u:sam:rw,d:g::r,d:o::- /home/alex
[最后修改由 admin, 于 2013-07-03 20:01:14]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1548

这篇日志没有评论。

此日志不可发表评论。