命令摘要: setfacl和getfacl
ACL :访问控制列表,提供灵活的权限管理
不仅是文件的所有者,所属组的其他人也可以为更多用户设置权限
acl生效顺序:所有者、自定义用户、自定义组和其他
1、首先看看man帮助文档的说明
[ root @ centos7si Xijie ] # man setfacl
从man文档中摘录说明我们常用的几个功能和选项。
安全文件访问控制列表
the---setand---- set---fileoptionssettheaclofafileoradirectory.thepreviousaclisreplaced.ACL entries
forthisoperationmustincludepermissions
the-m---modify (and-m (-- modify-file ) optionsmodifytheaclofafileordirectory.aclentriesforthisoper 208;
ationmustincludepermissions。
the-x (移动)和- x (移动-文件) optionsremoveaclentries.itisnotanerrortoremoveanentrywhich
does not exist.onlyaclentrieswithoutthepermsfieldareacceptedasparameters,unlessPOSIXLY_CORRECTis
已定义。
-b,- -移除所有
removeallextendedaclentries.thebaseaclentriesoftheowner,groupandothersareretained。
-k,- -移除-默认
removethedefaultacl.ifnodefaultaclexists,nowarningsareissued。
r,--recursive
applyoperationstoallfilesanddirectoriesrecursively.thisoptioncannotbemixedwith `-- restore '。
- ifthefilenameparameterisasingledash,setfaclreadsalistoffilesfromstandardinput。
2、-m和-x选项分别具有修改“设置”和删除“删除”acl权限
[ root @ centos7si Xijie ] # setfacl-mu : si Xijie : rwxf 1
[ root @ centos7si Xijie ] # getfacl f1
[ root @ centos7si Xijie ] # setfacl-Xu : sixijief 1
[ root @ centos7si Xijie ] # getfacl f1
3、-M和-X选项允许从文件中批量设置和删除acl
acl.txt:
u:user1:rw
u :用户2: r
u:user3:rwx
[ root @ centos7si Xijie ] # setfacl-macl.txt f1
[ root @ centos7si Xijie ] # getfacl f1
acl.del
u :用户1
u :用户2
[ root @ centos7si Xijie ] # setfacl-xacl.del f1
[ root @ centos7si Xijie ] # getfacl f1
4、-set和set-file选项:
注意--set和--set-file将删除所有原始ACL表条目
- -设置文件
man手册中有以下语言。
版权所有
getfacl file1| setfacl-- set-file=-file 2
于是,我
[ root @ centos7si Xijie ] # getfacl f1|setfacl-- set-file=-F2
上述命令将f1的ACL复制到f2
[ root @ centos7si Xijie ] # getfacl F2
--set选项
注:请务必包括UGO设置
[ root @ centos7si Xijie ] # setfacl-- setu :3360 rw,u:sixijie:rwx,g:r,o:rwf1
[ root @ centos7si Xijie ] # getfacl f1
5、-b选项:清除所有ACL权限
[ root @ centos7si Xijie ] # setfacl-bf1
[ root @ centos7si Xijie ] # getfacl f1
6、设置默认ACL权限及其删除
)1)通常只有目录才能设置默认ACL
[ root @ centos7si Xijie ] # setfacl-MD : u : si Xijie : rw,d:g:hadoop:rdir1
[ root @ centos7si Xijie ] # getfacl dir 1
)2)在dir1/目录下创建文件和目录
[root@centos7sixijie]#cddir1/
[root@centos7dir1]#touchf3
[root@centos7dir1]#mkdird2
[root@centos7dir1]#getfaclf3
[root@centos7dir1]#getfacld2
可以看到dir1目录下的文件和phdbl目录继承了父目录中dir1的ACL权限。 这称为缺省ACL
删除的方法很简单。 -k选项一个即可
[ root @ centos 7si Xijie ] # setfacl-kdir1/
[ root @ centos 7si Xijie ] # getfacl dir1/
7、掩码介绍
[root@centos7tmp]#manacl
摘自此处,acl_mask条目表示最大权限
ACL _ masktheacl _ maskentrydenotesthemaximumaccessrights
thatcanbegrantedbyentriesoftypeacl _ user,ACL_GROUP_OBJ,orACL_GROUP。
因此,在getfacl中,可以看到名为effective:Mode的条目
[ root @ centos7~ ] # setfacl-mu : si Xijie : rx,g:user1:rwxf1
[根@ centos7~ ] # getfacl f1
掩码设置
[ root @ centos7~ ] # setfacl-mm : RF 1
[根@ centos7~ ] # getfacl f1
将显示自定义用户。 自定义组及其所属组的权限不能大于mask设置的权限
小知识点: setfacl和chmod设置的所属组的权限可以相互覆盖。 如果两者设定的权限不一致,则基于使用getfacl中看到的“#effective:”后的权限
8、ACL备份和恢复
的主要文件操作命令cp和mv支持ACL,但必须添加-p参数。 但是,常见的备份工具(如tar )不保留目录和文件的ACL信息
方法如下。
[ root @ centos7~ ] # getfacl-r/tmp/dir1ACL.txt
[ root @ centos7~ ] # setfacl-r-b/tmp/dir 1
[ root @ centos7~~] # setfacl-r-- set-file=ACL.txt/tmp/dir 1
[ root @ centos7~ ] # getfacl-r/tmp/dir 1
原创文章,作者: sixijie,转载请注明来源: http://www.178linux.com/28688