KOPS - setfacl
type: channel
link: https://www.kops.cc/tag/setfacl/
items: Linux文件访问控制列表 -- setfacl|getfacl

Linux文件访问控制列表 -- setfacl|getfacl
type: item
date: 2016-06-06T09:22:50+00:00
description: 命令介绍 getfacl - 显示文件访问控制列表 setfacl - 设置文件访问控制列表 应用场景服务器上所有的服务都安装在/home/work目录下，work用户的家目录权限是700，所属主和所属组都是work。由于服务的运行产生的日志文件都存放在该目录下，需要给研发组的同事获取日志文件进行分析；运维的同事需要定时清除多余的日志等管理操作；除此之外，不允许其他用户访问/home/work目录.类似的需求，简单的权限管理将无法满足我们的需求，那么下面将介绍如何使用Linux文件访问控制列表(facl)来解决这个问题。接下来介绍这两个命令的使用方法getfacl使用说明：getfacl [-aceEsRLPtpndvh] file ... getfacl [-aceEsRLPtpndvh] -输出范例：1: # file: somedir/ 2: # owner: lisa 3: # group: staff 4: # flags: -s- 5: user::rwx 6: user:joe:rwx #effective:r-x 7: group::rwx #effective:r-x 8: group:cool:r-x 9: mask::r-x 10: other::r-x 11: default:user::rwx 12: default:user:joe:rwx #effective:r-x 13: default:group::r-x 14: default:mask::r-x 15: default:other::---选项-a, --access 显示文件的访问控制列表 -d, --default 显示默认的文件访问控制列表 -c, --omit-header 不显示头部信息（前三行） -e, --all-effective 打印所有特殊权限注释 -E, --no-effective 不打印特殊权限注释 -s, --skip-base 跳过只有基础ACL的文件，即只有基础ACL的文件不打印输出，基础ACL包括(owner, group, others). -R, --recursive 递归显示 -L, --logical 跟踪符号链接，默认跳过符号链接，与-R同时使用时有效 -P, --physical 不跟踪符号链接，与-R同时使用时有效 -t, --tabular 以表格的方式显示，tab对齐 -p, --absolute-names 不去除根，默认去除 -n, --numeric 以ID的方式显示用户和用户组 -v, --version 显示版本信息 -h, --help 显示帮助信息 -- 标识命令行参数结束，其后的所有参数都将被认为是文件名。 - 如果文件名是-，则setfacl将从标准输入读取文件名。setfacl选项：-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规则。 当使用-M，-X选项从文件中读取规则时，setfacl接受getfacl命…