免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 956 | 回复: 0
打印 上一主题 下一主题

ACL Linux文件系统ACL介绍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-27 23:17 |只看该作者 |倒序浏览
                     Linux文件系统FACL介绍
简介
FACL是访问控制列表(File Access Control Lists)的缩写,对于Unix系统,
ACL是标准Unix文件属性(r,w)的附加扩展。ACL给予用户和管理员
更好控制文件读写和权限赋予的能力,商业Unix和NTFS以及Freebsd都
支持文件系统的ACL,Linux从2.6内核开始支持对Ext2,Ext3和XFS,JFS
等文件系统的ACL支持。
注意,Fedora Core从2开始支持FACL操作
FACL操作命令
getfacl - 取得文件的FACL信息
setfacl - 设置文件的FACL信息
getfacl很简单,可以返回文件当前的FACL信息,例如在一个CVSROOT下的passwd
有这样的属性,
# getfacl passwd
# file: passwd
# owner: cvsadmin
# group: cvsadmin
user::rw-
group::r--
other::r--
可以用setfacl加上相关属性,例如加上allen用户可写到刚才我们看到的
passwd文件,
# setfacl -m u:allen:rw- passwd
这个命令可以这样解释:增加用户(u)用户名(allen)可读写权限(rw-)到
文件passwd。这样之后再执行getfacl,看看结果,
# getfacl passwd
# file: passwd
# owner: cvsadmin
# group: cvsadmin
user::rw-
user:allen:rw-
group::r--
mask::rw-
other::r--
可以看到多出了行user:allen:rw-,表示allen用户有rw-权限。
mask权限,就是用一个固定的权限设置遮住其他的权限设置,这样可以获得比较
好的保护,因为用户最终对文件的权限将是由设置的权限和mask运算出来的
有效权限,例如执行下面的设置,
# setfacl -m mask::r-- passwd
# getfacl passwd
# file: passwd
# owner: cvsadmin
# group: cvsadmin
user::rw-
user:allen:rw- #effective:r--
group::r--
mask::r--
other::r--
我们可以看到allen用户对于passwd文件的有效(effective)权限经计算
为r--。
如果setfacl命令不指定操作用户,那么就是对默认属主用户权限的操作,这时候
的setfacl命令功能上和传统的chmod相同。例如setfacl u::rwx,g::rwx,o::rwx
filename 等价于chmod 777 filenmae。
更多的setfacl操作
-x 删除特定用户的权限设置,
例如setfacl -x u:allen filename,删除filenmae上allen用户的权限设置。
setfacl -b filename  删除所有的FACL设置,
setfacl --remove-all filename
递归选项 -R
此外,FACL的属性设置也可以写在一个文件中,使用setfacl的-M参数从
文件中取得设置信息,这个对成批设置和备份FACL设置恢复特别有效。
默认FACL设置,setfacl -d可以设置,只供目录以及目录继承使用。
cp和mv命令对于FACL的支持,mv命令保持FACL设置信息,cp命令在
使用-p,-a参数时保留FACL设置信息。但是如果从一个支持FACL的文件系统向
一个不支持FACL的文件系统移动或带FACL属性的拷贝,则会得到类似下面这样的错误提示,
cp: preserving permissions for `filename': Operation not supported
设置了FACL的文件在ls -l时可以看到这样的情况,
-rw-rw----+ 1 allen chen 0 Jun 2 09:52 filename
有个加号在第一个列的末尾。
可以这样备份FACL信息和恢复,
getfacl -R dir/ > acl.bak.txt
setfacl --restore acl.bak.txt
打包备份FACLs目录和文件
请使用star命令打包,参数-acl用于指定备份相关的FACL信息。
备份:star -Hexustar -acl -c f=Tree.star Tree
恢复:star -acl -x f=Tree.star
FACL的应用,主要可以用在共享文件时需要细分用户权限的地方,如CVS仓库的权限控制应用等方面,FACL都有很好的用途。
******
FACL 在权限继承问题:
setfacl -m u:tset:rwx /test
意为增加test用户 对/test目录拥有完全权限
setfacl -m -d u:tset:rwx /test
意为增加test用户 对/test目录拥有完全权限并且默认继承。





本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94265/showart_1912470.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP