Setfacl 文件权限属性设置
setfacl命令是用来在命令行里设置ACL(访问控制列表).
注意点
如果你的文件系统不支持ACL的话,你也许需要重新mount你的file system: mount -o remount, acl [mount point]
如果用chmod命令改变Linux file permission的时候相应的ACL值也会改变,反之改变ACL的值,相应的file permission也会改变。
规则格式
setfacl命令可以识别以下的规则格式:
[d[efault]:] [u[ser]:]uid [:perms] 指定用户的权限,文件所有者的权限(如果uid没有指定)。
[d[efault]:] g[roup]:gid [:perms] 指定群组的权限,文件所有群组的权限(如果gid未指定)
[d[efault]:] m[ask][:] [:perms] 有效权限掩码
[d[efault]:] o[ther] [:perms] 其他的权限
命令格式
-
setfact -m u:user:rwx file
-
setfacl -m user:kim:rwx test
-
setfacl -b test
-
setfacl -x u:kim: test
-
getfacl file
选项
-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。 --mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。 对目录有效
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。 --:标识命令行参数结束,其后的所有参数都将被认为是文件名 -:如果文件名是-,则setfacl将从标准输入读取文件名。
选项-m和-x后边跟以acl规则。多条acl规则以逗号(,)隔开。选项-M和-X用来从文件或标准输入读取acl规则。
选项--set和--set-file用来设置文件或目录的acl规则,先前的设定将被覆盖。
选项-m(--modify)和-M(--modify-file)选项修改文件或目录的acl规则。
选项-x(--remove)和-X(--remove-file)选项删除acl规则。
常用实例
-
setfact -m u:user:rwX file 增加user对file的rwx权限 (X 表示如果目录或文件在改变之前有x权限则新增,没有则不处理.)
-
setfacl -m user:kim:rwx test 增加user对file的rwx权限
-
setfacl -b test 清空所有file的acl权限
-
setfacl -x u:kim: test 删除file的acl权限
-
getfacl file 查看file的权限
-
setfacl -R -m u:user:rwX dir 增加user对dir目录的rwx权限
-
setfacl -R -b dir 清除dir目录下所有acl权限
本文转自 pk2008 51CTO博客,原文链接:http://blog.51cto.com/837244/1978686