linux中acl管理详解
目录:
1、ACL简介;
2、CentOS7 与之前版本的区别;
3、管理acl工具的介绍
4、注意事项
1、简介:
访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体[1]。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对对象的权限。
主要功能:为了更好的管理用户权限,可以*的设置用户的访问文件的权限,实行有效的管理。对某些组或者用户有特殊权限的设置。
2、CentOS7 与之前版本的区别
CentOS7版本,进行对磁盘的分区,自动创建acl功能。而CentOS6之前的版本只有安装系统创建的分区中自动创建acl功能。安装系统成功后,创建分区时不自动创建acl功能;如果需要可以手动创建:
首先要挂载分区才可以添加acl功能;
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
3、管理acl工具的介绍
(1)setfacl set file access control lists
usage:
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
setfacl –restore=file
OPTIONS:-m:修改用户、组、mask acl权限;
-b:清空所有acl权限;
-x:删除acl权限;但是删除的不干净;
-k:清除默认acl权限;
-M:调用文件修改acl权限;
-R:递归修改目录下acl权限;
示例
getfacl file|directory 查看文件acl功能;
setfacl -m u:USERNAME:MODE file|directory 修改文件或目录用户的acl权限;
setfacl -m g:GROUPNAME:MODE file|directory 修改文件或目录组的acl权限;
setfacl -Rm g:GROUPNAME:MODE directory 递归修改目录下acl权限;
setfacl -M file.acl file|directory 调用文件修改文件后目录的acl权限;
setfacl -x u:USERNAME: FILE|directory 删除用户权限;
setfacl -X file.acl(文件中写有删除的权限内容) directory 只对目录起作用;
setfacl -b file 清除文件的acl权限;
setfacl -k file 删除默认的acl权限;
setfacl -Rm u:mage:rwx dir/
x:对目录文件下的文件都生效;
setfacl -Rm u:mage:rwX dir/
X:只对目录起作用,对目录下的文件不生效;
getfacl file1 | setfacl –set-file=- file2 复制file1的acl权限给file2;
(2)设置mask权限:
mask权限只对自定用户、自定义组、所属组有效,对所有者和其他用户无效;
mask相当于一个高压线,上述有效的定义中不能超过mask定义的权限。setfacl -m mask::rx file 设置mask权限;
–set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以。
setfacl –set u::rw,u:wang:rw,g::r,o::- file1
(3)备份和恢复acl
主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息 .
备份:
getfacl -R DIRECTORY >/PATH/TO/SOME_FILE
备份是会自动删除路径前/,方便以后路径改变;恢复:
setfacl –restore /PATH/TO/SOME_FILE
setfacl -R –set-file=acl.txt /PATH/TO/SOURCE
4、注意事项
(1)设置了acl功能在权限或.会变成+。
(2)设置了acl功能,所属组的权限不能原所属组的权限,而是自定义组的权限。
(3)如果对组修改权限,组中的用户对此文件都有组的权限;用户既在组中又单独对用户修改权限,这个用户只能匹配用户定义的权限。
(4)一个用户属于多个组,用户得到的权限累加。
(5)ACL生效顺序:所有者-->自定义用户-->自定义组(如果有多个组,权限累加)-->其他人。
5、
[[email protected] app]#setfacl -m d:u:wang:rw testdir/dir/ 设置此目录的默认acl
cp /etc/passwd f2
[[email protected] dir]# ll #此时查看文件时,新创建的文件又acl功能;旧文件没有acl功能;
total 8
-rw-r--r--. 1 root root 23 Jul 29 02:43 f1
-rw-r--r--+ 1 root root 2801 Jul 29 02:48 f2
备份和恢复示例:
[[email protected] app]# setfacl -m d:g:laowang:rw testdir/dir/ #设置acl权限
[[email protected] app]# setfacl -m d:u:wang:r testdir/dir/
[[email protected] app]# setfacl -m d:u:tom:r testdir/dir/
[[email protected] app]# getfacl testdir/dir/ #查看此目录的权限
[[email protected] app]# getfacl -R testdir/dir/ > /root/acl.log #备份
[[email protected] app]# setfacl –restore /root/acl.log # 还原
上一篇: swoft服务端和客户端的创建